【发布时间】:2019-03-18 12:44:37
【问题描述】:
我是新手,我编写了一个继承自 StackView 的 customView,并以编程方式创建了一个带有少量属性的 button,当我将它添加到我的自定义视图时,我遇到了两个问题:
- 如果我使用
addArrangedSubview(myBtn),我的视图会忽略 我添加并填充了整个宽度。但是如果我使用addSubView(myBtn), 没关系(44x44 的蓝色方块) - 如果我使用
addArrangedSubview(myBtn),addTarget()不起作用并且myBtn不可点击,但是当我使用addSubView(myBtn)时,它可以工作 完美。
这是我的自定义视图类:
import UIKit
class RatingControl: UIStackView {
//MARK: Initialization
override init(frame: CGRect) {
super.init(frame: frame)
setupButtons()
}
required init(coder: NSCoder) {
super.init(coder:coder)
setupButtons()
}
//MARK: Private Methods
private func setupButtons() {
// Create the button
let button = UIButton()
button.backgroundColor = UIColor.blue
// Add constraints
button.translatesAutoresizingMaskIntoConstraints = false
button.heightAnchor.constraint(equalToConstant: 44.0).isActive = true
button.widthAnchor.constraint(equalToConstant: 44.0).isActive = true
// Setup the button action
button.addTarget(self, action: #selector(ratingButtonTapped(_:)), for: .touchUpInside)
// Add the button to the stack
addArrangedSubview(button)
}
//MARK: Button Action
@objc func ratingButtonTapped(_ sender: Any) {
print("Button pressed ????")
}
}
这是预览:
addSubView() 和 addArrangedSubview() 有什么区别?为什么会出现这些问题?
【问题讨论】:
-
它工作正常。
addArrangedSubview没有问题 -
我在我的问题中添加了图片。看看
标签: ios swift xcode uistackview