我不认为有人可以指导我以正确的方式动态调整UITextView的大小,同时仍然使用自动布局?使用Swift,即。
我尝试以编程方式调整底部约束,试图让UITextView拥抱内容。但是我不确定如何获得UITextView内容的高度?
我试图将数据加载到UITextView字段中,然后动态调整它们以使其看起来整洁。
@IBOutlet weak var serviceDescriptionTextViewBottomGuide: NSLayoutConstraint!
override func viewDidLoad() {
self.activityName.text = serviceCodes[selectionValue]
self.serviceDescriptionTextView.text = serviceDescription[selectionValue]
self.whenToUseDescriptionTextView.text = whenToUseCode[selectionValue]
self.serviceDescriptionTextViewBottomGuide?.constant += x
}
答案 0 :(得分:43)
禁用滚动,不要放置任何其他可以指示UITextView高度的约束。
答案 1 :(得分:2)
这是对的,但我也必须写:
override func viewDidLoad() {
super.viewDidLoad()
tableView.estimatedRowHeight = 44.0 // Replace with your actual estimation
// Automatic dimensions to tell the table view to use dynamic height
tableView.rowHeight = UITableViewAutomaticDimension
}
查看更多:
https://pontifex.azurewebsites.net/self-sizing-uitableviewcell-with-uitextview-in-ios-8/
答案 2 :(得分:1)
您可以为要以编程方式变化的任何约束创建IBOutlet
。然后通过代码中的NSLayoutConstraint的constant
属性通过其出口引用来改变约束。这非常有效。你可以通过这种方式改变宽度,高度和位置。你不能修改 NSLayoutConstraint的multiplier
属性(它是readonly)。但这并不重要,因为您可以通过在Interface Builder中定义约束的乘数属性(获得比例值)来实现,您可以通过在代码中执行数学运算并修改constant
属性来实现。
另一种方法是,您可以禁用调整大小掩码转换(例如UIView
translatesAutoresizingMaskIntoConstraints
属性设置为nil)并以编程方式从头开始创建约束,为此推荐的方法(更易于使用) )被称为视觉格式。但是,以编程方式创建约束比使用Interface Builder Autolayout创建视图的粗略草图,然后在事后以编程方式调整选择约束更为重要,至少在典型的简单情况下。