听起来很简单,但事实并非如此,我想要的是制作一个内置UITextView的UITableViewCell。我正在使用自动布局,所以当tableview首次加载所有单元格时,它们都将处于相同的最大静态大小,当我按下单元格时,单元格将根据UITextView的文本进行扩展。 困难的部分是添加一个"查看更多"文本视图末尾的按钮,如果它不符合静态大小。(按下单元格之前)
如果按下单元格以确定是否展开它,我也保存到数组。 另一个棘手的部分是如果textview低于静态大小而不是使用UITableViewAutomaticDimension,那么如果它的40个高度点我不希望单元格因为空白而变为102点,那么将创建 为此,我需要知道textview是否低于102点。 我想过实现像这样的heightForRow
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if([self isCellWithIndexNeedsToExpand:[NSNumber numberWithInteger:indexPath.row]])
{
return UITableViewAutomaticDimension;
}
else
{
int height = [self someFunctionThatGivesTheTextViewHeight];
if(height>102)
return 102;
else
return UITableViewAutomaticDimension;
}
}
答案 0 :(得分:0)
在autolayout中它根本不重要..但是通过代码,您可以使用下面的代码来查找估计的字符串大小,
CGSize labelSize = [myLabel.text sizeWithFont:myLabel.font
constrainedToSize:myLabel.frame.size
lineBreakMode:NSLineBreakByWordWrapping];
CGFloat labelHeight = labelSize.height;
然后你可以增加行的高度