ios - 在 UIButton 上添加的图像视图和标签阻止我点击 - Swift - 以编程方式
问题描述
我在自定义 UIButton 上添加了 ImageView 和 Label,问题是它们阻止我点击按钮:
class CustomSignInButton : UIButton{
override init(frame: CGRect) {
super.init(frame: frame)
styleButton()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
fileprivate func styleButton(){
let imageView = UIImageView(image: #imageLiteral(resourceName: "mail").withRenderingMode(.alwaysOriginal))
imageView.contentMode = .scaleAspectFit
imageView.widthAnchor.constraint(equalToConstant: 30).isActive = true
let signInLabel = UILabel(text: "Sign In with Email", font: UIFont(name: "avenir-black", size: 13), textColor: .white, textAlignment: .left, numberOfLines: 1)
let stackView = UIStackView(arrangedSubviews: [imageView, signInLabel])
stackView.distribution = .fill
stackView.centerYToSuperview()
stackView.centerXToSuperview()
stackView.spacing = 20
self.addSubview(stackView)
stackView.anchor(top: topAnchor, leading: leadingAnchor, bottom: bottomAnchor, trailing: trailingAnchor, padding: .init(top: 8, left: 12, bottom: 8, right: 20))
}
}
我实际上需要以这种方式设置它们,但我显然想知道如何在这两个对象上实现点击能力。
解决方案
在“stackView”和“stackView”imageview
上禁用用户交互label
fileprivate func styleButton(){
let imageView = UIImageView(image: #imageLiteral(resourceName: "mail").withRenderingMode(.alwaysOriginal))
imageView.contentMode = .scaleAspectFit
imageView.isUserInteractionEnabled = false
imageView.widthAnchor.constraint(equalToConstant: 30).isActive = true
let signInLabel = UILabel(text: "Sign In with Email", font: UIFont(name: "avenir-black", size: 13), textColor: .white, textAlignment: .left, numberOfLines: 1)
signInLabel.isUserInteractionEnabled = false
let stackView = UIStackView(arrangedSubviews: [imageView, signInLabel])
stackView.distribution = .fill
stackView.centerYToSuperview()
stackView.centerXToSuperview()
stackView.spacing = 20
self.addSubview(stackView)
stackView.anchor(top: topAnchor, leading: leadingAnchor, bottom: bottomAnchor, trailing: trailingAnchor, padding: .init(top: 8, left: 12, bottom: 8, right: 20))
}
推荐阅读
- neural-network - 对同一模型的重复评估定义的损失
- python-3.x - 更改 Anaconda 的目录
- python - 运行 PyMC3 模型时出现“编译失败(返回状态=1)”异常
- pointers - OpenCL:将指针传递给本地内存
- javascript - 我收到此错误我想使用 javascript 代码读取文件未捕获的类型错误:fs.readFile 不是函数。我收到此错误
- python - Django 管理员只读字段与 list_display 和 list_editable
- pine-script - Tradingview vs IB为数据条返回不同的开始结束时间
- amazon-web-services - 如何为 AWS HTTP API 创建使用计划?
- visual-studio-code - 是否可以更改装订线中代码折叠区域的背景颜色?
- arrays - 更新包含在类/结构中的数组中的值 - SwiftUI