基于 Swift 中内容的动态 UITextView 大小
Dynamic UITextView size based on content in Swift
我不认为有人可以指导我在仍然使用自动布局的同时动态调整 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
}
您可以为要以编程方式改变的任何约束创建一个 IBOutlet
。然后通过它的 outleted 引用在代码中通过 NSLayoutConstraint 的 constant
属性 改变约束。这很好用。您可以那样改变宽度、高度和位置。你不能 modify NSLayoutConstraint 的 multiplier
属性 虽然(它是只读的)。但这并不重要,因为您可以通过在 Interface Builder 中定义约束的乘数 属性 来完成(以获得比例值),您也可以通过在代码中执行数学运算并修改 constant
属性.
另一种方法是,您可以禁用调整大小掩码转换(e.g.the UIView
translatesAutoresizingMaskIntoConstraints
属性 设置为 nil)并以编程方式从头开始创建约束,为此,推荐的方法(更易于使用)称为 视觉格式。但是,完全以编程方式创建约束要比使用 Interface Builder Autolayout 创建视图的粗略草稿,然后事后以编程方式调整 select 约束要多得多,至少在典型的简单情况下是这样。
禁用滚动并且不要放置任何其他可以决定 UITextView 高度的约束。
这是对的,但我也不得不写:
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/
我不认为有人可以指导我在仍然使用自动布局的同时动态调整 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
}
您可以为要以编程方式改变的任何约束创建一个 IBOutlet
。然后通过它的 outleted 引用在代码中通过 NSLayoutConstraint 的 constant
属性 改变约束。这很好用。您可以那样改变宽度、高度和位置。你不能 modify NSLayoutConstraint 的 multiplier
属性 虽然(它是只读的)。但这并不重要,因为您可以通过在 Interface Builder 中定义约束的乘数 属性 来完成(以获得比例值),您也可以通过在代码中执行数学运算并修改 constant
属性.
另一种方法是,您可以禁用调整大小掩码转换(e.g.the UIView
translatesAutoresizingMaskIntoConstraints
属性 设置为 nil)并以编程方式从头开始创建约束,为此,推荐的方法(更易于使用)称为 视觉格式。但是,完全以编程方式创建约束要比使用 Interface Builder Autolayout 创建视图的粗略草稿,然后事后以编程方式调整 select 约束要多得多,至少在典型的简单情况下是这样。
禁用滚动并且不要放置任何其他可以决定 UITextView 高度的约束。
这是对的,但我也不得不写:
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/