我有xib
我用于表格单元格(变量高度,在垂直UITableView中),每个单元格都填充了具有图像和可变长度的数据文本,但可能有不同的行数。我已经尝试将它们包装在horizontal UIStackView
中,但我发现没有文本视图可以调整其容器的大小以适应可变的多行。
UILabel
和UITextView
在Interface Builder中看似任意地截断它们的内容,而调整图像的高度使得UIStackView容器相应地增长和缩小以包装其内容。
是否有任何视图或方法可以添加自定义视图,根据文本长度动态调整其高度,而不会截断?
答案 0 :(得分:1)
我认为这就是你想要的:)
有很多关于如何实现它的教程:)无论如何,lemme解释这里的步骤,希望它有所帮助:)
提示强>
利用tableView的estimatedRowHeight
并将其设置为UITableViewAutomaticDimension
,让UITableView
为你做神奇的事情:)
第1步:
创建单元格xib或在UITableViewController上创建原型单元格。无论你感觉舒服。创建一个单元格xib,iOS希望你在ViewDidLoad()
中注册带有可重用标识符的xib我打算避免它,因此在UITableViewController中创建一个原型单元格:)让它为它提供一个可重用的标识符:)
第2步:
拖动UIImageView和UITextView并应用约束,如图所示:) 这个答案假设你的imageView高度是固定的:)如果它没有调整答案一点:))
现在imageView有H:| - (8) - [ImageView] - (8) - |和V:| - (8) - [ImageView] 最后高度限制为100:)
现在在它下面添加TextView:)
TextView没有高度限制:)它只有顶部,左下和右下约束:)
第3步:
现在选择textView,并小心取消选中启用滚动,显示水平和垂直指示符:)
第4步:
在tableViewController的viewDidLoad或你的viewController中写:)
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 44.0;
第5步:
现在坐下来,放松,运行代码,激动,请回来接受答案:)
修改强>
如果想知道我可能在UITableViewController中写了什么:)只是tableView数据源方法numberOfSections
,numberOfRowsInSection
,cellForRowAt
就是这样。没有其他要求:)