gpt4 book ai didi

ios6 - 使用 NSAttributedString iOS 自定义 heightForRowAtIndexPath (CGSize sizeWithFont)

转载 作者:行者123 更新时间:2023-12-03 18:13:07 24 4
gpt4 key购买 nike

我有一个表格 View ,其中我的单元格高度是根据它所代表的文本动态定义的。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
//getting my text for this cell, the row etc ...
...
//here is the part interesting us
NSAttributedString* theText = [myTextForThisCell objectAtIndex:indexPath.row];

NSInteger labelWidth = self.tableView.bounds.size.width-HORIZONTAL_CELL_PADDING;

CGSize textSize = [theText sizeWithFont:[UIFont systemFontOfSize:customFontSize] constrainedToSize:CGSizeMake(labelWidth, MAXFLOAT) lineBreakMode:NSLineBreakByWordWrapping];

return textSize.height+VERTICAL_CELL_PADDING;
}

好的,现在我的问题。
tableview 是搜索操作的结果,它在扫描 plist 文件后显示包含给定字符串的行。

到目前为止就是这样。但是现在有了 iOS 6 和 NSAttributedString 可以轻松地将字符串的一部分加粗,我决定加粗搜索词。

它正在工作,它加粗了我想要的单词,但现在我无法计算单元格高度,因为 sizeWithFont 要求 NSString。由于粗体的宽度更宽,我不能简单地使用没有属性的字符串计算单元格高度。

我只是被困在这里。

任何人都可以帮助我吗?

最佳答案

事实上,我只需要阅读 NSAttributedText 的苹果文档。

就我而言,我必须将最后两行代码替换为

CGRect rectSize = [theText boundingRectWithSize:CGSizeMake(labelWidth, MAXFLOAT) 
options:NSStringDrawingUsesLineFragmentOrigin context:NULL];

return rectSize.size.height+VERTICAL_CELL_PADDING;

跟进 iOS 7

我一直在努力使用属性文本在 iOS7 中完成这项工作。

苹果文档说

In iOS 7 and later, this method returns fractional sizes (in the size component of the returned CGRect); to use a returned size to size views, you must use raise its value to the nearest higher integer using the ceil function.



哪种方式显然不适合我!对我来说,解决方案是将 +1 添加到高度的上限。这可能是 Apple 的错误,但对我来说,现在一切都像在 iOS6 中一样。
CGRect rectSize = [theAttributedText boundingRectWithSize:CGSizeMake(labelWidth, MAXFLOAT) 
options:NSStringDrawingUsesLineFragmentOrigin context:NULL];

return ceil(rectSize.size.height) + 1 + VERTICAL_CELL_PADDING;

关于ios6 - 使用 NSAttributedString iOS 自定义 heightForRowAtIndexPath (CGSize sizeWithFont),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13230731/

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