在追加带有元素的最后一个视图(在滚动视图内)后,滚动视图高度不会改变,因此我无法滚动到内容的底部
我完成的步骤:
所以看起来像:
在此之后,我手动添加标签以持续查看:
class SecondViewController: UIViewController {
@IBOutlet weak var testView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
var yPos = 20
for i in 0...20 {
let testLabel = UILabel(frame: CGRect(x: 0, y: yPos, width: 200, height: 20))
testLabel.text = "test \(i)"
testLabel.font = UIFont(name: "Arial", size: 11)
testView.addSubview(testLabel)
yPos += 20
}
}
}
如您所见,我只能看到标签1-9,因为无法滚动到底部,所以无法看到休息
这是问题,因为我将自动布局与以编程方式添加的标签混合到View中?我如何解决这个问题?
答案 0 :(得分:1)
您的上一个问题/观点是正确的,如果您在故事板中使用自动布局,则应使用自动布局。
幸运的是,UIStackView
适用于自动布局,因此如果您将黄色视图更改为UIStackView
并在代码中设置出口,则可以添加视图:
stackView.addArrangedSubview(sensorLabel)
简要解释为什么它不会让你滚动而不更新自动布局:
您的黄色视图固定在其中的标签上,黄色视图的底部也固定在故事板中滚动视图的底部。
除非您增加黄色视图的大小(通过更改固定黄色视图底部的标签),滚动视图内容大小也不会因为它固定在底部而改变黄色的视图。堆栈视图将为您完成大部分工作,因此您只需将堆栈视图的底部固定到Storyboard中滚动视图的底部。
答案 1 :(得分:0)
问题是你设置它的高度约束固定读取步骤3尝试删除它并将最后一个标签底部约束挂钩到scrollview的内容视图