如何修改 heightForRowAtIndexPath 以便它调整其中的 textview 的高度,同时在 textview 为空时保持最小高度?
How can I modify the heightForRowAtIndexPath so that it adjust height to the textview in it,but also keep the minimum height when textview is empty?
我有一个 tableView,里面有静态单元格。一个单元格包含一张地图,UITextView
和其他控件:
此文本视图具有以下限制:
到目前为止,我将 heightForRowAtIndexPath
设置为该单元格的静态值:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
if indexPath.row == 0 {
return 311;
}
}
但是当文本变长时,textview - 而不是增长 - 包含里面的文本,用户必须滚动它。
基本上它的高度总是311。我想改变它,让整个单元格适应 textView 的内容。
我尝试将 return 311
更改为 return UITableViewAutomaticDimension
,但是当没有文本时,单元格会缩小并且右侧的控件不可见。
所以我的问题是 - 如何根据里面的文本为单元格设置动态高度,同时保持最小高度为 311?
我不完全理解你的问题,但根据你所说的,这可能有效:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if UITableViewAutomaticDimension > 311 {
return UITableViewAutomaticDimension
}
else {
return 311
}
}
我只是检查单元格是否应该大于最小值 311,然后 return 最小值或更大的值
给文本视图添加一个高度约束>=最小值(单元格为311时的高度,然后将单元格高度设置为自动。
如果您只是简单地显示文本而不以任何方式对其进行编辑。您应该尝试使用 UILabel,如果正确添加约束,UITableViewAutomaticDeminsions 将按预期工作。
你可以做的是给textView添加一个高度约束,然后根据你获取的字符串的大小增加它的大小。当然,您也需要调用 layoutIfNeeded! UITableViewAutomaticDimensions 应该负责其余的工作。
我有一个 tableView,里面有静态单元格。一个单元格包含一张地图,UITextView
和其他控件:
此文本视图具有以下限制:
到目前为止,我将 heightForRowAtIndexPath
设置为该单元格的静态值:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
{
if indexPath.row == 0 {
return 311;
}
}
但是当文本变长时,textview - 而不是增长 - 包含里面的文本,用户必须滚动它。 基本上它的高度总是311。我想改变它,让整个单元格适应 textView 的内容。
我尝试将 return 311
更改为 return UITableViewAutomaticDimension
,但是当没有文本时,单元格会缩小并且右侧的控件不可见。
所以我的问题是 - 如何根据里面的文本为单元格设置动态高度,同时保持最小高度为 311?
我不完全理解你的问题,但根据你所说的,这可能有效:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if UITableViewAutomaticDimension > 311 {
return UITableViewAutomaticDimension
}
else {
return 311
}
}
我只是检查单元格是否应该大于最小值 311,然后 return 最小值或更大的值
给文本视图添加一个高度约束>=最小值(单元格为311时的高度,然后将单元格高度设置为自动。
如果您只是简单地显示文本而不以任何方式对其进行编辑。您应该尝试使用 UILabel,如果正确添加约束,UITableViewAutomaticDeminsions 将按预期工作。
你可以做的是给textView添加一个高度约束,然后根据你获取的字符串的大小增加它的大小。当然,您也需要调用 layoutIfNeeded! UITableViewAutomaticDimensions 应该负责其余的工作。