swift - Swift:使用子视图后的滚动视图不起作用
问题描述
我想以scrollview
编程方式将子视图添加到
如果我添加subviews
到scrollview
,滚动不起作用
for subview in view.scrollView.subviews {
subview.removeFromSuperview()
}
var j = 0
for value in getList {
let viewChild = SelectClass.createMyClassView()
viewChild.translatesAutoresizingMaskIntoConstraints = false
viewAll[j] = viewChild
viewChild.title.text = value.value
view.scrollView.addSubview(viewChild)
j = j+1
}
var i = 0
for subview in view.scrollView.subviews {
let item = subview as? UIView
NSLayoutConstraint.activate([
(item?.leftAnchor.constraint(equalTo: view.scrollView.leftAnchor))!,
(item?.rightAnchor.constraint(equalTo: view.scrollView.rightAnchor))!,
(item?.heightAnchor.constraint(equalToConstant: 50))!
])
if(i > 0){
NSLayoutConstraint.activate([
(item?.topAnchor.constraint(equalTo: (viewAll[i-1]?.bottomAnchor)!))!
])
} else {
NSLayoutConstraint.activate([
(item?.topAnchor.constraint(equalTo: view.scrollView.topAnchor))!
])
}
i = i+1
}
view.scrollView.isScrollEnabled = true
我尝试了一个视图,scrollView
但不再工作
在正常的故事板中工作正常,但addSubView
不工作
我该如何解决?
解决方案
首先最好使用UIStackView
,这里你需要为最后一项添加底部约束
if let last = viewAll.last {
NSLayoutConstraint.activate([
last.bottomAnchor.constraint(equalTo: view.scrollView.bottomAnchor)
])
}
推荐阅读
- javascript - 遇到 npm 问题
- r - 使用堆叠的 geom_bar 时如何将色调限制为两个值
- javascript - 如何比较 Javascript 中两个 promise 产生的值?
- javascript - 删除单击对象的事件侦听器
- reactjs - 传递给 createStore 的 preloadedState 参数具有意外的“数组”类型。预期参数是具有以下键的对象
- spring - 使用spring security时无法访问jsf页面,出现403
- events - reactJS - 将事件处理程序添加到此时可能存在或可能不存在的元素
- java - 用于将新创建的对象传递给方法的字节好友代码
- list - 使用 TCL 将列表中的非科学值转换为科学值
- actions-on-google - onQuery 的多个特征