ではcellForRowAtIndexPath
、ランダム化を使用して 2 つの異なるカスタム タイプのいずれかを作成しています。それらを and とUITableViewCell
呼びましょう(1 つはイメージを含み、もう 1 つはテキストを含み、各行に表示されるランダムです)。これは非常に基本的に次のようにレイアウトされています。LCImageCell
LCTextCell
- (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath
{
// Determine whether the cell should contain an image or text..
BOOL isCellAnImage;
int randomChanceOfImageAppearing = arc4random() % 5;
if (randomChanceOfImageAppearing == 4) isCellAnImage = YES;
else isCellAnImage = NO;
// If the cell is going to contain an image..
if (isCellAnImage) {
LCIImageCell *imageCell = [tableView dequeueReusableCellWithIdentifier: @"ImageCell"];
if (imageCell == nil) {
imageCell = [[LCImageCell alloc] initWithStyle: UITableViewCellStyleValue1 reuseIdentifier: @"ImageCell"];
}
return imageCell;
// Else the cell will contain text..
} else {
// Make and allocate the cell if necessary.
LCTextCell *customCell = [tableView dequeueReusableCellWithIdentifier: @"CustomCell"];
if (customCell == nil) {
customCell = [[LCTextCell alloc] initWithStyle: UITableViewCellStyleValue1 reuseIdentifier: @"CustomCell"];
}
return customCell;
}
}
テキストを含むもの (インスタンス) の高さを動的に設定する必要がありますが、それはLCTextCell
正しく機能しています。heightForRowAtIndexPath
画像セルを統合するようになりました。問題のセルが であるかどうかをどのように知ることができるLCImageCell
か疑問に思っているLCTextCell
ので、問題のセルが である場合にのみ高さ調整を適用できますLCTextCell
。
高さが設定される前に、高さが適用されているセルにアクセスできますか? その時点までに作成/割り当て/初期化されていますか?