0

データを表示するテーブルが正常に機能するiPhoneアプリで作成していますが、添付の画面に示すように、行が2つしかない場合、テーブルに他の空のスペースが表示されないようにしたいです。

ここに画像の説明を入力

tableView に空のスペースが表示されます。これを削除したい

    [tableView.layer setCornerRadius:7.0f];
    [tableView.layer setMasksToBounds:YES];
    tableView.layer.borderWidth = 0.5;
    tableView.layer.borderColor = [UIColor grayColor].CGColor;

テーブルのボーダーを使用したテーブルのコードは次のとおりです。

4

5 に答える 5

0

テーブルビューのフッターにUIviewを配置

 - (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;
       {
         return 1;
       }
  - (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section; 
      {
           UIView *view=[[[UIView alloc]init]initWithFrame:yourtablefrmae];
         return view; 
      }
于 2013-10-21T05:25:00.327 に答える
0

このメソッドをコードに追加します。

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection: (NSInteger)section {
// This will create a "invisible" footer
return 0.01f;
}
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
    return [UIView new];

    // If you are not using ARC:
    // return [[UIView new] autorelease];
}
于 2013-10-21T05:27:03.197 に答える
0

テーブルは、フレームがデータソースの行数とは関係のない一種の UIView です。2 つを関連付けることはできますが、次のようにコードで明示的に関連付ける必要があります。

// assuming one section and a fixed row height
CGFloat tableHeight = [self.tableView numberOfRowsInSection:0] * self.tableView.rowHeight;
CGRect frame = self.tableView.frame;
self.tableView.frame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, tableHeight);
于 2013-10-21T05:28:25.943 に答える
0

// カスタム セルの場合、ヘッダー、フッター、その他のクラップはこれを実装します

CGFloat tableHeight = [self.tableView numberOfRowsInSection:0] * self.tableView.rowHeight;
CGRect frame = self.tableView.frame;
self.tableView.frame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width,[self getHeightForTableView:self.tableView]);

// また、このメソッドを viewController に追加します

-(CGFloat)getHeightForTableView:(UITableView*)tableView
{
    CGFloat tableViewHeight=0.0;

    NSArray *indexPaths=[tableView indexPathsForVisibleRows];
    NSInteger oldsection=((NSIndexPath*)[indexPaths firstObject]).section;

    tableViewHeight+=[tableView.delegate tableView:tableView heightForFooterInSection:oldsection];
    tableViewHeight+=[tableView.delegate tableView:tableView heightForHeaderInSection:oldsection];

    for(NSIndexPath *path in indexPaths)
    {
        if(oldsection!=path.section)
        {
            tableViewHeight+=[tableView.delegate tableView:tableView heightForHeaderInSection:path.section];
            tableViewHeight+=[tableView.delegate tableView:tableView heightForFooterInSection:path.section];
            oldsection=path.section;
        }
        tableViewHeight+=[tableView.delegate tableView:tableView heightForRowAtIndexPath:path];

    }
    return tableViewHeight;
}
于 2013-10-21T06:14:42.080 に答える
0

このデリゲート メソッドを使用して、余分なスペースを削除できます。

  • (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { // これにより、「見えない」フッターが作成されます return 0.01f; }

参考までに、このリンクを参照してください

UITableView の下の余分な区切りを削除します

于 2013-10-23T12:06:53.727 に答える