我在UIView的自定义层次结构(此视图)中的UIButton的操作存在一些问题,位于滚动视图的容器内 根据我的需要,是否创建按钮。 如果我尝试创建相同的按钮,但在self.view上,则可以正常工作。
层次结构是这样的:
self.ltbox
尝试通过这种方式创建视图:
- UIScrollView
- UIView (scroll content) //all above are dynamically created
- UIView (dynamically)
- UIButton (dynamically)
- UIView (dynamically)
- UIButton (dynamically)
所有视图均完美添加,但按钮的操作不起作用。
我使用PureLayout进行约束。
如果我添加
class ScrollViewController: UIViewController {
@IBOutlet weak var scrollContent: UIView!
func createViews() {
let containerButton = UIView()
self.scrollContent.addSubview(containerButton)
containerButton.autoPinEdge(toSuperviewEdge: .top, withInset: 16)
containerButton.autoPinEdge(toSuperviewEdge: .left, withInset: 16)
containerButton.autoPinEdge(toSuperviewEdge: .right, withInset: 16)
containerButton.autoSetDimension(.height, toSize: 200)
let button = UIButton()
containerButton.addSubview(button)
button.autoPinEdge(toSuperviewEdge: .top, withInset: 8)
button.autoPinEdge(toSuperviewEdge: .left, withInset: 8)
button.autoPinEdge(toSuperviewEdge: .right, withInset: 8)
button.addTargetClosure { _ in
print("button tapped")
}
}
}
看起来不错,但是却弄乱了我的布局。
使用此格式在按钮上添加目标
我不知道我在创建视图时是否缺少某些内容或做错了什么。我该怎么做才能使按钮动作在滚动视图内容的容器内起作用?
谢谢!
答案 0 :(得分:0)
尝试创建视图,将视图的userInteractionEnabled
设置为true
并单击按钮。然后向该视图添加按钮,之后将视图添加到scrollView的容器视图:
func createViews() {
//creating the container
let containerButton = UIView()
containerButton.isUserInteractionEnabled = true
//creating the button
let button = UIButton()
self.containerButton.addSubview(button)
// add view to scrollContent now.
self.scrollContent.addSubview(containerButton)
}