ios - 是否有可能使 UILabel、UITextView 或类似的东西始终调整其高度以适应 Interface Builder 中的内容而不截断?

标签 ios swift xcode interface-builder uilabel

我有一个 xib 用于表格单元格(可变高度,在垂直 UITableView 中),并且每个单元格都填充了具有图像和可变长度文本的数据, 但可能有不同数量的线。我试过将它们包装在 horizo​​ntal UIStackView 中,但我发现没有 TextView 可以调整其容器的大小以适应可变的多行。

UILabelUITextView 都在 Interface Builder 中看似任意地截断了它们的内容,同时调整图像的高度使 UIStackView 容器相应地增长和收缩以包装其内容。

是否有任何 View 或方法可以添加自定义 View ,根据其文本长度动态调整其高度,而不截断?

最佳答案

我想这就是你想要的:)

enter image description here

有很多关于如何实现它的教程 :) 不管怎样,让我在这里解释一下步骤,希望它能有所帮助 :)

提示:

利用 tableView 的 estimatedRowHeight 并将其设置为 UITableViewAutomaticDimension 并让 UITableView 为您施展魔法 :)

第 1 步:

在 UITableViewController 上创建单元格 xib 或创建原型(prototype)单元格。无论你觉得舒服。创建一个单元格 xib,iOS 希望您在 ViewDidLoad() 中使用可重用标识符注册 xib 我打算避免它因此在 UITableViewController 中创建一个原型(prototype)单元格:) 让我们为它提供一个可重用标识符:)

enter image description here

第 2 步:

拖动 UIImageView 和 UITextView 并应用约束,如图所示:) 这个答案假设你的 imageView 高度是固定的 :) 如果它没有稍微调整答案 :)

enter image description here

现在 imageView 有 H:|-(8)-[ImageView]-(8)-|和 V:|-(8)-[ImageView] 最后高度限制为 100 :)

现在在它下面添加 TextView :)

enter image description here

TextView 没有高度限制 :) 它只有顶部、底部左和右侧限制 :)

第 3 步:

enter image description here

现在选择 textView,小心地取消选中 Scrolling enabled,显示水平和垂直指示器:)

第 4 步:

在你的 tableViewController 或你的 viewController 的 viewDidLoad 中写 :)

self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 44.0;

第 5 步:

现在坐下来,放松,运行代码,兴奋起来,请回来接受答案:)

编辑

如果想知道我在 UITableViewController 中还写了什么 :) 只是 tableView 数据源方法 numberOfSectionsnumberOfRowsInSectioncellForRowAt 就这些。没有其他要求:)

关于ios - 是否有可能使 UILabel、UITextView 或类似的东西始终调整其高度以适应 Interface Builder 中的内容而不截断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41628657/

相关文章:

ios - UIDatePicker 最小日期

ios - 动画委托(delegate)未转换为 Swift 3.0

swift - 无法将类型 'UIViewController' 的值分配给类型 'UITabBarController?'

没有零的 Swift 货币样式

objective-c - 在存在新 API 时构建向后兼容的 OS X 应用程序?

swift - 无法在 View Controller 之间传递数据

ios - 固定背景图片

android - Phonegap - 对 Android 和 IOS 感到困惑

iOS:排序和分组 NSFetchedResultsController

swift - Xcode Commoncrypto 生成 key 对(私钥和公钥)