У меня возникли некоторые проблемы с действием UIButtons внутри пользовательской иерархии UIViews, эти представления находятся внутри контейнера в представлении прокрутки. В зависимости от моих потребностей, я создаю или не создаю кнопки. Если я пытаюсь создать ту же кнопку,но в self.view это работает отлично.
иерархия такова:
- UIScrollView
- UIView (scroll content) //all above are dynamically created
- UIView (dynamically)
- UIButton (dynamically)
- UIView (dynamically)
- UIButton (dynamically)
я пытаюсь создать вид таким образом:
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")
}
}
}
все видыдобавлены отлично, но действие кнопок не работает.
я использую PureLayout для ограничений ..
если я добавлю
button.centerYAnchor.constraint(equalTo: containerButton.centerYAnchor).isActive = true
, он будет работать, но беспорядокс моим макетом ..
я использую этот формат для добавления целей на кнопках
https://medium.com/@jackywangdeveloper/swift-the-right-way-to-add-target-in-uibutton-in-using-closures-877557ed9455
Я не знаю, пропустил ли я что-то или сделал что-то не так при создании представлений,Что мне нужно сделать, чтобы действия кнопок работали внутри контейнера в содержимом прокрутки?
Спасибо!