如何在TableView中获得填充?

时间:2012-09-07 12:04:57

标签: iphone objective-c ios cocoa-touch

我有一个深色透明的TableView 我想要填充的背景 我尝试使用contentInsets来实现这一点, contentSizecontentOffset

CGFloat padding = 10.0f;
CGSize size = self.tableView.bounds.size;
size.width -= (padding*2);
size.height -= (padding*2);
self.tableView.contentSize = size;
self.tableView.contentInset = UIEdgeInsetsMake(padding, padding, padding, padding);
self.tableView.contentOffset = CGPointMake(-padding, -padding);

这不起作用。 我得到填充,但细胞也不是 调整大小也没有重新定位。

我知道,我可以将TableView嵌套在另一个View中, 但应该有另一种解决方案。

编辑:

我实际上对'contentSize'的含义存在误解。 这不是视口的大小,而是内容的实际大小。 所以我可能不得不......

  1. 尽可能调整单个单元格的大小(可能会与TableView的布局过程发生冲突)
  2. 将内容偏移量应用于上面的TableView

2 个答案:

答案 0 :(得分:2)

对于宽度,你将不得不弄乱每个细胞框架。对于顶部和底部插图,请使用setContentInset:

答案 1 :(得分:1)

如果你想为你的tableview配套,只需改变它的框架。

如果您想为细胞填充,请尝试以下代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

      static NSString *CellIdentifier = @"Custom";

      UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
      if (cell == nil) {
            CGRect cellFrame = CGRectMake(20,0,200,200); //CHANGE FRAME FOR YOUR APP
            UITableViewCell *cell = [[[UITableViewCell alloc] initWithFrame:cellFrame reuseIdentifier:CellIdentifier] autorelease];

      }

          //INSERT YOUR CODE TO RETRIVE TEXT TO INSERT INTO A CELL

    return cell;
}