Ваша проблема на самом деле в том, что вы не устанавливаете высоту для inputAccessoryView
, а ваш scrollView выходит за границы, поэтому вы не получаете сенсорные события и просто докажите, что если вы перейдете к виду верхнего уровня и установите это, чтобы обрезать границы и запустить свой проект, это то, что вы получаете
Так почему это происходит? потому что вы видите, что у вас нет intrinsicContentSize
, вы можете присвоить ему intrinsicContentSize
, создав подкласс UIView
и переопределив intrinsicContentSize
и вернув желаемую ширину и высоту, как это
class CustomView: UIView {
override var intrinsicContentSize: CGSize {
return CGSize.zero
}
}
Не забудьте установить свой вид в CustomView в коде и в nib-файле
private lazy var horizontallyScrollableToolbarAccessoryView: CustomView? = {
let nibName = "HorizontallyScrollableToolbarAccessoryView"
let view = Bundle.main.loadNibNamed(nibName, owner: nil, options: nil)?.first as? CustomView
return view
}()
Вы также можете указать высоту с помощью ограничения по высоте, например:
override func viewDidLoad() {
super.viewDidLoad()
self.horizontallyScrollableToolbarAccessoryView?.heightAnchor.constraint(equalToConstant: 80).isActive = true
}
но вам все равно нужно будет установить intrinsicContentSize
на CGSize.Zero
class CustomView: UIView {
override var intrinsicContentSize: CGSize {
return CGSize.zero
}
}
и вот что вы получите в конце рабочего scrollView