单击按钮(单元格中的按钮)时应该更改特定单元格?

时间:2012-03-20 05:00:17

标签: iphone ios

uiview上有1个表格,我想在按下按钮时更改单元格高度,其他单元格的高度保持不变

6 个答案:

答案 0 :(得分:1)

通过委托方法将按钮按下事件传递给视图控制器,并按如下方式重新加载表视图。

[self.tableView reloadData];

在视图控制器(即表视图的数据源)中,实现heightForRowAtIndexPath方法并根据需要返回高度。

答案 1 :(得分:1)

您可以在委托方法中更改单元格高度

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
if(indexPath.row == clickedRow)
    return newHeitht;

return cellHeight;
}

您可以在按钮点击中设置一些条件,然后使用[tableView reloadData]重新加载表格视图。这个函数将被调用。返回特定单元格的新高度。

答案 2 :(得分:0)

[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:toReloadRows withRowAnimation: UITableViewRowAnimationNone];
[self.tableView endUpdates];

然后

[self.tableView beginUpdates];
[self.tableView endUpdates];

答案 3 :(得分:0)

-(void)buttonClick  {

[self.tableview reloadData];

selectedRow = //do something here 

}

并在您的UITableview数据源

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath {

if(indexPath.row == selectedRow)

 return selectedRowHeight;
else
 return  defaultHeight;

}

答案 4 :(得分:0)

(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {    

    if (isSearching && indexPath.row == selectedIndex) {
        return 110;
    }
    else {
        return rowHeight;       
    }

答案 5 :(得分:0)

1)创建自定义UITableViewCell类。 2)不管你认为合适,都要填充你的细胞。我自己使用'hydrateWithArray'类型函数。 3)填充数据后,使用“sizeToFit”函数调整元素大小并重新定位元素,以强制标签符合放入其中的任何内容的大小。 protip:首先设置标签的框架,然后将行的数字设置为0 ...当你填充文本和sizetofit时,它将仅垂直拉伸标签并强制宽度保持不变。 4)创建一个单独的函数(我的名为calculatedHeight),它返回一个浮点数,并返回你希望单元格在表格中的高度(基于步骤3中重新定位的对象)。

- (float)calculatedHeight {
return textLabel.frame.origin.ytextLabel.frame.size.height5;
}

5)在UITableView类中,您需要导入tableViewCell类并创建一个虚拟单元格对象。您将使用此类来计算每个单元需要的高度。然后在heightOfRowAtIndex方法....

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
float height;
if ( !dummyCell ) dummyCell = [[CustomCell alloc] initWithFrame:CGRectMake(0,0,0,0) reuseIdentifier:@"myCell"];
[dummyCell hydrateWithTweet:[tableArray objectAtIndex:indexPath.row]];
height = [dummyCell calculatedHeight];
if ( height == 0 ) height = 50;
return height;
}

这是一个非常简单的示例,因此您可能需要对特定用途中的错误检查发疯,但这至少应该指向正确的方向。享受!