gpt4 book ai didi

iphone - 具有动态单元格高度的 UITableView——我需要做什么来修复向下滚动?

转载 作者:太空狗 更新时间:2023-10-30 03:14:28 32 4
gpt4 key购买 nike

我正在 iPhone 上构建一个小巧的 Twitter 客户端。自然地,我在 UITableView 中显示推文,它们当然有不同的长度。我正在根据文本动态更改单元格的高度:

- (CGFloat)heightForTweetCellWithString:(NSString *)text {
CGFloat height = Buffer + [text sizeWithFont:Font constrainedToSize:Size lineBreakMode:LineBreakMode].height;
return MAX(height, MinHeight);
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *text = // get tweet text for this indexpath
return [self heightForTweetCellWithString:text];
}
}

我正在使用 PragProg 书中的算法显示实际的推文单元格:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"TweetCell";
TweetCell *cell = (TweetCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [self createNewTweetCellFromNib];
}
cell.tweet.text = // tweet text
// set other labels, etc
return cell;
}

当我启动时,所有可见的推文都显示得很好。然而,当我向下滚动时,下面的推文非常困惑——似乎一旦一个单元格滚出屏幕,它上面那个单元格的高度就会被调整为比它应该的更大,并遮盖了部分它下面的单元格。当单元格到达 View 的顶部时,它会自行重置并正确呈现。向上滚动没有困难。

这是一个演示此操作的视频:http://screencast.com/t/rqwD9tpdltd

我已经尝试了很多:在创建时调整单元格的框架大小,为具有不同高度的单元格使用不同的标识符(即 [NSString stringWithFormat:@"Identifier%d", rowHeight]) , 在 Interface Builder 中更改属性...

如果我可以发布其他代码片段,请告诉我。预先感谢您的帮助!

最佳答案

叹息。事实证明,我没有很好地调整所有属性。但至少我摆脱了那个错误。 :)

此行为已通过确保检查 "Clip Subviews" 得到修复UITableViewCell 的属性。

该行为是由于将我的推文文本标签声明为所需的最大高度引起的——当表格单元格的 subview 未被剪裁时,上方单元格中的标签将呈现在下方单元格之上。由于 SDK 呈现单元格的顺序 - 向下 - 以及它如何将一个单元堆叠在另一个之上,这在屏幕的第一次渲染中是不可见的。

关于iphone - 具有动态单元格高度的 UITableView——我需要做什么来修复向下滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/680067/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com