调整UITableViewCell内容的大小

时间:2015-08-20 08:06:33

标签: ios objective-c iphone

友 我正在INT上工作,我想在Button Click上动态调整UITableView的大小。但问题是我没有得到如何计算和动态指定单元格的高度。我试过但它会重叠单元格内容。 所以请给我你的建议..

TableViewCell

Here is the image of cell

5 个答案:

答案 0 :(得分:1)

对于可变高度单元格,您需要实现tableView:heightForRowAtIndexPath:

答案 1 :(得分:0)

在代码中添加以下方法并返回给定索引路径所需的高度,它会自动调整单元格的大小。

tableView:heightForRowAtIndexPath:

答案 2 :(得分:0)

我会建议:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
     [tableView beginUpdates];
     [tableView endUpdates]; 
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
  if([indexPath isEqual:[tableView indexPathForSelectedRow]]) {
     return 100.0;
  }       
   return 50.0; 
}

答案 3 :(得分:0)

UITableView有委托方法设置,即tableView:heightForRowAtIndexPath: ..

如果你要求合乎逻辑的答案,我会说...在查看加载时显示你的表...拿一个标志来检查tableView:heightForRowAtIndexPath:中点击的按钮..将它保持为0 { {1}}和加载表。在按钮上单击更改为1并重新加载表。

viewDidLoad

答案 4 :(得分:0)

根据内容使用此代码更改hight

(1)在代码

下创建新的函数副本
func calcheight(strin:String) -> CGFloat
    {
        let label =  UILabel(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: CGFloat.greatestFiniteMagnitude))
        label.numberOfLines = 0
        label.text = strin
        label.sizeToFit()
        return label.frame.height + 2

    }

(2)然后将此代码复制到StringContent对象中的Contenct对象

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
{
    let height = self.calcheight(strin: StringContentObject)
    return height

}

此代码不需要自动布局