iOS7 引入了一个美妙的“凸版”文本效果,通过 AttributedText 应用于 UILabel 文本。我需要在简单表格的单元格中产生这种效果。
不幸的是,与“textLabel.text”分配相比,它以标准方式呈现导致明显的滚动滞后。
似乎属性文本渲染非常耗费 CPU,但 iOS 嵌入式应用程序(如 Notes)滚动没有延迟。是否可以提高渲染性能?
下面是代码示例:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyCell *cell = (MyCell*)[tableView dequeueReusableCellWithIdentifier:identifier];
if (cell == nil)
{
cell = [[MyCell alloc] init];
}
NSDictionary *attrs = @{NSTextEffectAttributeName : NSTextEffectLetterpressStyle};
NSString *text = [self textWithCell:indexPath];
//next line causes lags
textLabel.attributedText = [[NSMutableAttributedString alloc] initWithString:text attributes:attrs];
//this works fine
//cell.textLabel.text = text;
}