UITextView With"查看更多"按钮,如果它不适合UITableViewCell IOS

时间:2015-12-22 17:13:07

标签: ios uitextview tableview

听起来很简单,但事实并非如此,我想要的是制作一个内置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;
        }
    }

1 个答案:

答案 0 :(得分:0)

在autolayout中它根本不重要..但是通过代码,您可以使用下面的代码来查找估计的字符串大小,

CGSize labelSize = [myLabel.text sizeWithFont:myLabel.font 
                            constrainedToSize:myLabel.frame.size 
                                lineBreakMode:NSLineBreakByWordWrapping];

CGFloat labelHeight = labelSize.height;

然后你可以增加行的高度