我刚刚发现了UIStackView,我正在试着看看它是否最终能让布局扩展内容变得更容易。
具体地说,我想做以下几点:
|-- UITextView ------------|
| some dynamic text here, | I want the text view's height to change
| it could be short, or it | depending on the height of the text
| could be tall | (set later, in code)
|-- UIView ----------------|
|xxxxxxxxxxxxxxxxxxxxxxxxxx| I want this view to expand to fill the
|xxxxxxxxxxxxxxxxxxxxxxxxxx| vertical space.
|xxxxxxxxxxxxxxxxxxxxxxxxxx|
|xxxxxxxxxxxxxxxxxxxxxxxxxx| It should start right below the
|xxxxxxxxxxxxxxxxxxxxxxxxxx| bottom of the UITextView
|xxxxxxxxxxxxxxxxxxxxxxxxxx|
|--------------------------|我想我知道如何在常规约束下做到这一点。有没有可能使用UIStackView?我可能理解UIStackView的用途,但我希望能够更容易地创建这样的布局。
当我将这两个视图都放入UIStackView中时,接口构建器会为这两个视图显示“需要限制:Y位置或高度”。
发布于 2019-05-23 02:06:31
从编程上看,它看起来是这样的:
@IBOutlet private var stackView: UIStackView!
{
didSet {
stackView.addArrangedSubview(titleTextView)
stackView.addArrangedSubview(UIView())
}
}
lazy var titleTextView: UITextView =
{
let textView = UITextView()
textView.isScrollEnabled = false
return textView
}()您不需要任何其他东西就可以让UITextView自动扩展。这不应该抱怨模棱两可。
发布于 2016-05-12 00:01:17
在textview中计算文本高度,在uitextview上添加一个高度约束,比如20,当你计算高度时,只需从textview更改高度constraint.Give,下面的视图约束top 0,你的问题就会得到解决。使用此函数计算高度
let height = string.boundingRectWithSize(CGSizeMake(CGFloat.max,textviewwidth), options: .UsesLineFragmentOrigin, attributes: [NSFontAttributeName: font!], context: nil).size.height发布于 2016-05-12 04:11:48
尝试使用UILabel =0而不是UITextView。
https://stackoverflow.com/questions/37166884
复制相似问题