gpt4 book ai didi

ios - 带有 NSMutableAttributedString 属性文本的 UICollectionViewCell UILabel 更新和显示缓慢

转载 作者:行者123 更新时间:2023-12-01 18:55:14 28 4
gpt4 key购买 nike

在 iPad 和 iPhone 上使用 iOS 8.1.2。我有使用 initWithCoder: 创建的 UICollectionViewCells:来自 xib 并显示在 UICollectionView 中

[_collectionView registerNib:[UINib nibWithNibName:@"HomeFeedCell" bundle:nil] forCellWithReuseIdentifier:CELL_IDENTIFIER];

模板 xib 单元格包含一个带有默认属性文本的 UILabel。单元格也设置为使用自动布局约束。

当单元格被实例化并使用其数据更新时,我调用以下方法来更新属性文本:
- (void)setLabelsForData:(NSDictionary*)dict_data {

NSMutableAttributedString* attributedText_date = [[NSMutableAttributedString alloc] initWithString:[self dateStringForTimestamp:[dict_data objectForKey:@"ts"]]];
NSMutableAttributedString* attributedText_time = [[NSMutableAttributedString alloc] initWithString:[self timeStringForTimestamp:[dict_data objectForKey:@"ts"]]];

UIFont* font_date = [UIFont fontWithName:@"Helvetica-Bold" size:12.0];
UIFont* font_time = [UIFont fontWithName:@"Helvetica" size:12.0];

[attributedText_date addAttribute:NSFontAttributeName value:font_date range:NSMakeRange(0, attributedText_date.length)];
[attributedText_time addAttribute:NSFontAttributeName value:font_time range:NSMakeRange(0, attributedText_time.length)];

dateLabel.attributedText = attributedText_date;
timeLabel.attributedText = attributedText_time;

}

但是,当 UICollectionView 以模态方式推送时,最初显示 View 中的单元格并且每个单元格都以其原始 xib 默认形式显示其 UILabel 的属性文本大约 1 秒钟,然后最终使用正确的数据和格式进行更新。一旦 UICollectionView 已经显示,虽然 UILables 在滚动这些单元格和任何新单元格时没有这个问题。仅最初在 UICollectionView 出现时可见。

我试过了:
[cell setNeedsDisplay];
[cell setNeedsLayout];
[collectionView invalidateLayout];

在方法结束时。我什至将整个方法放在主线程上,希望这是一个线程问题,但没有运气。

什么可能导致 UILabel 更新缓慢?

最佳答案

有点晚了,但似乎我遇到了同样的问题,对我来说最简单的解决方案是更新 UILabel
- (void)collectionView:(UICollectionView *)collectionView willDisplayCell:(UICollectionViewCell *)cell forItemAtIndexPath:(NSIndexPath *)indexPath
(此方法在 IOS 8 及更高版本中可用)。
我也遇到了同样的问题 UITableView

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;

关于ios - 带有 NSMutableAttributedString 属性文本的 UICollectionViewCell UILabel 更新和显示缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27804604/

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