代码之家  ›  专栏  ›  技术社区  ›  Nir Levy

iPhone开发:动态调整uiTableView的大小

  •  1
  • Nir Levy  · 技术社区  · 15 年前

    嘿,我们有一个UITableView,里面(很明显)有很多UITableView单元。我们需要实现一个操作,这样当用户接触单元格时,单元格会增长并显示更多信息。如果用户再次接触单元格,它将重新调整为原始大小。

    我们可以通过这样改变单元框架的高度来实现这一点:

    CGRect newFrameTemp = self.frame;
    newFrameTemp.size.height +=textHeight;
    self.frame = newFrameTemp;
    

    同时移动所有其他单元格 textHeight 像素下降。(也改变了桌子本身的大小)

    这似乎是可行的,只是“触摸”事件没有与单元格一起移动,所以如果我想触摸下一个单元格,我实际上需要触摸刚刚“打开”的单元格中间。

    有没有关于我们做错的线索?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Ben Scheirman    15 年前

    也许可以尝试使用 UITableViewDelegate 方法:

    – tableView:heightForRowAtIndexPath:
    

    http://developer.apple.com/iphone/library/documentation/uikit/reference/UITableViewDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intf/UITableViewDelegate

    这可以为您适当调整命中区域。

    编辑:我刚刚浏览了可能相关的链接: http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/