我有一个带有静态单元格的tableView。一个单元格包含地图UITextView
和其他控件:
此textview具有以下限制:
到目前为止,我将heightForRowAtIndexPath
设置为此单元格的静态值:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
if indexPath.row == 0 {
return 311;
}
}
但是当文本较长时,textview - 而不是增长 - 包含内部文本,用户必须滚动它。 基本上它总是311高。我想改变它,以便整个单元格适应textView内容。
我尝试将return 311
更改为return UITableViewAutomaticDimension
,但是当没有文字时,单元格会缩小,右侧的控件也不可见。
所以我的问题是 - 如何根据里面的文字设置单元格的动态高度,还要保持311的最小高度?
答案 0 :(得分:1)
为文本视图添加高度约束> =最小值(单元格为311时的值,然后将单元格高度设置为自动。
答案 1 :(得分:1)
如果您只是显示文本而不是以任何方式编辑它。你应该尝试使用UILabel,如果正确添加约束,UITableViewAutomaticDeminsions将按预期工作。
您可以做的是向textView添加高度约束,然后根据您获得的字符串大小增加其大小。当然你也需要调用layoutIfNeeded! UITableViewAutomaticDimensions应该处理剩下的事情。
答案 2 :(得分:0)
我不完全理解你的问题,但根据你的说法,这可能有用:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if UITableViewAutomaticDimension > 311 {
return UITableViewAutomaticDimension
}
else {
return 311
}
}
我只是检查单元格是否应该大于最小值311,然后返回最小值或更大值