答案 0 :(得分:7)
我们可以使用自动布局,我们在scrollview中使用内容视图,可以将其固定到scrollview,并且给出的高度和宽度约束等于主视图。然后,如果我们希望高度动态变化,我们可以将高度约束与其他高度约束相比较低,因此内容视图的高度将根据其内在大小而增加,因为它的子视图。
参考链接:
答案 1 :(得分:1)
对我而言,这个技巧奏效了(Swift 4)
scrollView.layoutIfNeeded()
scrollView.isScrollEnabled = true
scrollView.contentSize = CGSize(width: self.view.frame.width, height: scrollView.frame.size.height)
答案 2 :(得分:0)
您必须计算内容所需的高度,包括间距。 将该值指定为行的高度并刷新表(或其中包含行的部分)
答案 3 :(得分:0)
就我而言,我必须使用textViews(和其他视图)构建一个scrollView,并且必须动态调整大小。
在InterfaceBuilder中,我设置了最小约束。高度和固定高度。然后在构建时删除固定的高度。
一切正常。
答案 4 :(得分:0)
垂直滚动视图根据其标签文本的长度调整大小的示例:
let scrollView = UIScrollView()
view.addSubview(scrollView)
scrollView.translatesAutoresizingMaskIntoConstraints = false
scrollView.heightAnchor.constraint(lessThanOrEqualToConstant: UIScreen.main.bounds.height / 2).isActive = true
let bodyLabel = UILabel()
scrollView.addSubview(bodyLabel)
bodyLabel.translatesAutoresizingMaskIntoConstraints = false
bodyLabel.topAnchor.constraint(equalTo: scrollView.topAnchor).isActive = true
bodyLabel.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor).isActive = true
bodyLabel.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor).isActive = true
bodyLabel.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor).isActive = true
bodyLabel.widthAnchor.constraint(equalTo: scrollView.widthAnchor).isActive = true
let heightConstraint = bodyLabel.heightAnchor.constraint(equalTo: scrollView.heightAnchor)
heightConstraint.priority = .defaultLow
heightConstraint.isActive = true