隐藏`UITableViewCell`的越界部分

时间:2014-05-10 08:04:10

标签: ios uitableview

就像CSS overflow: none;一样,我如何隐藏UITableViewCell的边界外部分?并且只有在选中时才会在单元格中显示某些组件?

我在想隐藏&使用UITableViewDelegate方法显示元素,但我无法很好地解决这些问题。我使用了以下内容:

NSIndexPath  *selected_index;

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  selected_index = indexPath;
  [cell.web_view setHidden:NO];
  [tableView beginUpdates];
  [tableView endUpdates];
}

- (CGFloat)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section) {
  if(selected_index != nil && selected_index.row == indexPath.row) {
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"TestCell"];
    [cell.web_view setHidden:NO];
    return 250;
  }
  [cell.web_view setHidden:YES];
  return 74;
}

其中cell.web_viewUIWebView,其高度(200)大于表格单元格(74)。但是这些代码并没有使网络视图显示出来并且&隐藏得当。

我还能做什么?

1 个答案:

答案 0 :(得分:1)

overflow: none的最接近代码是[cell setClipsToBounds:YES];

要点击时隐藏和显示内容,您应该有一些变量 BOOL shouldShowMyWebViews;,并在tableView:didSelectRowAtIndexPath:中切换状态,在cellForRowAtIndexPath:中,您可以在返回单元格之前显示或隐藏元素。