1

Webサービスからデータのリストを取得しています。テーブルに、残りの行(空の行)ではなく、データを含む行の数だけを表示したい。下記の方法で使用しましたが、効果的ではなく、空でないセルにのみ色を付けます。誰かがこれについて私を導くことができますか?

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
{
cell.backgroundColor = [UIColor grayColor]; 
}

前もって感謝します。

4

4 に答える 4

0

これを試して:

- (UIView *)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger*)section
{
    UIView *view=[[UIView alloc]init];
    return view;
}

これはフレームを変更しませんが、空のセル間の線を非表示にします。私はあなたがそれを望んでいると思います。

于 2013-01-16T07:47:45.537 に答える
0

これを使ってみてください

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{{

    return array.count;

}

ここで、arrayは、Webサービスから取得するリストデータ配列になります

于 2013-01-16T09:21:24.760 に答える
0

ついに私は解決策を得ました、

-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
{    
//return 172;
if([arrayServ count] == 1)
{
    tableService.frame = CGRectMake(5, 20, 310, 40);
}

if([arrayServ count] == 2)
{
    tableService.frame = CGRectMake(5, 20, 310, 85);
}

if([arrayServ count] == 3)
{
   // return 172;
    tableService.frame = CGRectMake(5, 20, 310, 130);
}

if([arrayServ count] == 4)
{
    tableService.frame = CGRectMake(5, 20, 310, 175);
}

if([arrayServ count] == 5)
{
    tableService.frame = CGRectMake(5, 20, 310, 220);
}

if([arrayServ count] == 6)
{
    tableService.frame = CGRectMake(5, 20, 310, 265);
}

if([arrayServ count] == 7)
{
    tableService.frame = CGRectMake(5, 20, 310, 310);
}

if([arrayServ count] > 7)
{
    tableService.scrollEnabled = TRUE;
}
return 0;
}
于 2013-01-16T10:09:18.220 に答える
0

どうですか

if(arrayServ.count > 6)
{
    tableService.frame = CGRectMake(5, 20, 310, 6 * 45);
}
else
{
    tableService.frame = CGRectMake(5, 20, 310, arrayServ.count * 45);
}

それぞれのケースを個別に処理する代わりに?

また、あなたの質問を読んだ場合、彼はあなたがuitableviewのフレームサイズを調整したいのではなく、空のセルを隠したいと思うかもしれません。

于 2013-01-16T10:50:05.920 に答える