これは、グループ化されたテーブル ビューでサブクラス化された UITableViewCell を使用すると、かなり簡単に実行できます。下の画像は、さまざまな UI 要素をドラッグして、.h ファイルに IBOutlets しかないカスタム クラスを作成することで簡単に作成したものを示しています。
ちんぷんかんぷんなラベルは、特定の高さが設定されていないセルの下と上部の灰色のビューに関連付けられているため、セルが成長すると成長します。テーブルにデータを入力するために使用したコードは次のとおりです。
- (void)viewDidLoad {
[super viewDidLoad];
self.theData = @[@"One",@"Two",@"Three",@"Four",@"Five",@"Six",@"Seven",@"Eight",@"Nine"];
[self.tableView reloadData];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return self.theData.count;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 1;
}
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *s = @"asdfhfl fl flfh sflhsalfjh fajlhf lf asldf fh asljfafh sjlfh ajf fljf fasjlfhjfhjfhjsf hsjfhsjfhajsfh the end";
CGSize size = [s sizeWithFont:[UIFont systemFontOfSize:17] constrainedToSize:CGSizeMake(281, CGFLOAT_MAX) lineBreakMode:NSLineBreakByWordWrapping];
return size.height + 130;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
RDCell *cell = [tableView dequeueReusableCellWithIdentifier:@"RDCell" forIndexPath:indexPath];
cell.lbl1.text = self.theData[indexPath.section];
cell.lbl2.text = @"asdfhfl fl flfh sflhsalfjh fajlhf lf asldf fh asljfafh sjlfh ajf fljf fasjlfhjfhjfhjsf hsjfhsjfhajsfhajlfjafh";
return cell;
}
セクションの数を配列のカウントに設定しているため、それぞれ 1 行の個別のセクションが得られることに注意してください。heightForRowAtIndexPath のコードは、セルの高さを計算する典型的な方法です (ただし、通常はインデックス パスを使用し、セルごとに異なる文字列を取得します)。