2

1つのセクションを持つNibでUITableViewコントロールを使用しており、デリゲート/データソースをコントローラーに設定します。コントローラーでは、「テーブルデータ」配列が2項目のみに初期化されます。ただし、シミュレーターで実行すると、テーブルビューに追加の空の行がレンダリングされます。UITableViewに2行のみをレンダリングさせるにはどうすればよいですか?

ありがとう!

4

7 に答える 7

2

データを含むセルのセパレーターのみを表示する方法など、同様の問題がありました。tableView は、割り当てられた領域 (幅と高さ) に収まる限り多くの行をレンダリングします。で指定した番号は、numberOfRowsInSectionを呼び出す回数を決定するためにのみ使用されますcellForRowAtIndexPath

空のセルの区切り線のレンダリングを克服するために、次のことを行いました。

  1. tableView 全体のセパレーターを無効にします。これは、Interface builder の tableview のインスペクターで行うか、 を呼び出して行うことができます[yourTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];

  2. テーブルビューにセルを入力する場所内cellForRowAtIndexPathで、新しいセルを作成UIViewし、セルのサブビューとして設定します。このビューの背景をライトグレーでわずかに透明にします。次の方法でそれを行うことができます。

    UIView *separatorView = [[UIView alloc] initWithFrame:CGRectMake:
                                    (0, cell.frame.size.height-1, 
                                       cell.frame.size.width, 1)];
    [separatorView setBackgroundColor:[UIColor lightGrayColor]];
    [separatorView setAlpha:0.8f];
    [cell addSubView:separatorView];
    

    このビューの幅は 1 ピクセルで、デフォルトのセパレーターと同じです。下部のセルの長さを実行します。

cellForRowAtIndexPath は numberOfRowsInSection で指定した回数だけ呼び出されるため、これらのサブビューはデータを所有するセルに対してのみ作成され、セパレータが必要です。

お役に立てれば。

于 2012-07-30T15:30:42.683 に答える
0

配列を使用していることを確認する必要があります。これは、セクション内のセルの数としてカウントされます。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [myArray count];
}
于 2012-06-04T23:04:01.770 に答える
0

セクションまたはフッターが必要ない場合は、テーブルに空のフッターを指定します。

viewDidLoad に追加

tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];

UITableViewで空のセルを削除する方法を参照してください?

これを実現する別の方法は、空のフッター ビューを返すことです。これは、前のセクションのフッターが必要な場合に特に便利です。

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    return [[UIView alloc] initWithFrame:CGRectZero];
}

最後に、これを達成するための他の方法への別のリンクを示します。

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

于 2015-11-17T12:37:28.140 に答える
0

設定

urtableview.frame=(x,y,width,[rowheight * num of rows])
于 2014-04-23T08:55:38.700 に答える
-1

このメソッドは、viewDidLoad から呼び出すことができます。

- (void) addFooter
{
 UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)];
 v.backgroundColor = [UIColor clearColor];
 [self.tableView setTableFooterView:v];
}
于 2012-06-04T23:50:32.397 に答える
-1

テーブル ビューのフレームのサイズを 2*cellHeight に減らすことができます。

または必要な高さ。各セルの高さが 44 ピクセルで、セクションが 1 つしかないため、セクション ヘッダーがない場合は、次のようにします。

self.tableView = [[UITableView alloc] 
  initWithFrame:CGRectMake(x-coord, y-coord, width, 88) 
  style:UITableViewStylePlain];

それぞれの高さが 44 ピクセルであると仮定すると、2 つのセルのみが表示されます。

于 2012-06-04T23:45:19.087 に答える