1

contentInsetsを使用し てそれを達成しようとしたパディングが必要な、暗い透明な背景を持つ TableView がありcontentSizeますcontentOffset

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 をネストできますが、別の解決策があるはずです。

編集:

実は、「contentSize」の意味について誤解していました。ビューポートのサイズではなく、コンテンツの実際のサイズです。だから私はおそらくしなければならない..

  1. 可能であれば、個々のセルのサイズを変更します (TableView のレイアウト プロセスと衝突する可能性があります)。
  2. 上記のようにTableViewにコンテンツオフセットを適用します
4

2 に答える 2

3

幅については、各セル フレームをいじる必要があります。上下のインセットについては、setContentInset を使用します。

于 2012-09-11T15:46:52.117 に答える
1

テーブルビューのパッフィングが必要な場合は、フレームを変更するだけです。

セルのパディングが必要な場合は、次のコードを試してください。

- (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;
}
于 2012-09-07T12:13:49.057 に答える