1つのセクションを持つNibでUITableViewコントロールを使用しており、デリゲート/データソースをコントローラーに設定します。コントローラーでは、「テーブルデータ」配列が2項目のみに初期化されます。ただし、シミュレーターで実行すると、テーブルビューに追加の空の行がレンダリングされます。UITableViewに2行のみをレンダリングさせるにはどうすればよいですか?
ありがとう!
1つのセクションを持つNibでUITableViewコントロールを使用しており、デリゲート/データソースをコントローラーに設定します。コントローラーでは、「テーブルデータ」配列が2項目のみに初期化されます。ただし、シミュレーターで実行すると、テーブルビューに追加の空の行がレンダリングされます。UITableViewに2行のみをレンダリングさせるにはどうすればよいですか?
ありがとう!
データを含むセルのセパレーターのみを表示する方法など、同様の問題がありました。tableView は、割り当てられた領域 (幅と高さ) に収まる限り多くの行をレンダリングします。で指定した番号は、numberOfRowsInSection
を呼び出す回数を決定するためにのみ使用されますcellForRowAtIndexPath
。
空のセルの区切り線のレンダリングを克服するために、次のことを行いました。
tableView 全体のセパレーターを無効にします。これは、Interface builder の tableview のインスペクターで行うか、 を呼び出して行うことができます[yourTableView setSeparatorStyle:UITableViewCellSeparatorStyleNone];
。
テーブルビューにセルを入力する場所内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 で指定した回数だけ呼び出されるため、これらのサブビューはデータを所有するセルに対してのみ作成され、セパレータが必要です。
お役に立てれば。
配列を使用していることを確認する必要があります。これは、セクション内のセルの数としてカウントされます。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [myArray count];
}
セクションまたはフッターが必要ない場合は、テーブルに空のフッターを指定します。
viewDidLoad に追加
tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
UITableViewで空のセルを削除する方法を参照してください?
これを実現する別の方法は、空のフッター ビューを返すことです。これは、前のセクションのフッターが必要な場合に特に便利です。
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
return [[UIView alloc] initWithFrame:CGRectZero];
}
最後に、これを達成するための他の方法への別のリンクを示します。
設定
urtableview.frame=(x,y,width,[rowheight * num of rows])
このメソッドは、viewDidLoad から呼び出すことができます。
- (void) addFooter
{
UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 10)];
v.backgroundColor = [UIColor clearColor];
[self.tableView setTableFooterView:v];
}
テーブル ビューのフレームのサイズを 2*cellHeight に減らすことができます。
または必要な高さ。各セルの高さが 44 ピクセルで、セクションが 1 つしかないため、セクション ヘッダーがない場合は、次のようにします。
self.tableView = [[UITableView alloc]
initWithFrame:CGRectMake(x-coord, y-coord, width, 88)
style:UITableViewStylePlain];
それぞれの高さが 44 ピクセルであると仮定すると、2 つのセルのみが表示されます。