显示UITableViewCell,然后可以展开以显示更多数据

时间:2012-11-27 05:11:55

标签: objective-c ios animation uitableview

我有一个UITableViewCell,它目前很混乱,并且屏幕上有太多信息。我想制作一个按钮,当按下时,一个小视图将向下滑动并显示剩余信息,然后再次按下它将滑回原始大小。我想知道我是怎么做这样的事情的。我知道没有这样做,所以请指出我在某个方向时具体。谢谢!

3 个答案:

答案 0 :(得分:1)

您是否希望单个按钮用于表格视图中的所有单元格,或者您希望在每个单元格上添加按钮作为子视图

1.如果您想在每个单元格上添加按钮作为子视图

a)添加标签值等于indexPath.row的按钮,并将每个按钮的目标设置为单一方法。

 -(void)infoButonTapped:(UIButton *)sender;

现在点击按钮找到按钮的标记值,并从用于填充UITableViewCell s的数组中获取信息。

b)现在创建一个infoview并在其上添加textview并将信息设置为文本视图的文本支柱,并使用UIView动画添加infoview作为视图的子视图,并在下一次单击时隐藏

你可以在.h文件中使用bool变量来知道隐藏或显示infoView,或者你可以检查infoview是否有superview然后你必须隐藏infoview否则添加infoview作为self.view的子视图。

  1. 如果您想要所有Cell的通用按钮
  2. a)现在点击按钮获取indexPath使用tableview方法选择tableview的单元格

    - (NSIndexPath *)indexPathForSelectedRow;
    

    此方法要么返回所选单元格的索引路径,要么在没有选择单元格的情况下返回nil

    使用indexpath获取数组中的信息,并使用上面介绍的步骤1.b将infoview添加为子视图进行查看。

    您还可以获取所选行的矩形,以便为信息视图设置坐标 通过tableview方法

    - (CGRect)rectForRowAtIndexPath:(NSIndexPath *)indexPath;
    

答案 1 :(得分:0)

在这种情况下,您最好使用以下方法: -

(void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation{
}

UITableView didselectRowAtIndexPath方法中调用上述方法。

以下链接提供了更多解释

  

UITableViewCell expand and collapse

答案 2 :(得分:0)

这可能会对您有所帮助Show hide table

或者你可以使用BOOL作为单元格的属性,并根据bool隐藏UITableViewCell的子视图,也可以调整单元格的框架。