gpt4 book ai didi

ios - 动态行高和 sizeWithAttributes 警告

转载 作者:行者123 更新时间:2023-11-29 02:36:14 26 4
gpt4 key购买 nike

好的,我正在使用 sizeWithFont: constrainedToSize 功能,但我收到了编译器警告。我读到我需要改用 sizeWithAttributes(链接在这里:Replacement for deprecated sizeWithFont: in iOS 7?)。

我很难理解如何动态实现 sizeWithAttributes,以便我的单元格行的高度更改为内容高度(请参见下文)。

关于如何摆脱这个警告的任何想法?谢谢!

int topPadding = cell.menuItemTitle.frame.origin.x;

int bottomPadding = cell.frame.size.height-
(topPadding+cell.menuItemTitle.frame.size.height);

NSString *text = [[menuItems objectAtIndex:indexPath.row] valueForKey:@"title"];

CGSize maximumSize = CGSizeMake(cell.menuItemTitle.frame.size.width, 9999);

CGSize expectedSize = [text sizeWithFont:cell.menuItemTitle.font
constrainedToSize:maximumSize lineBreakMode:cell.menuItemTitle.lineBreakMode];

return topPadding+expectedSize.height+bottomPadding;

最佳答案

您的 topPadding 应该是 origin.y 而不是 origin.x。您可以使用以下方法获取文本的大小。

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;

NSDictionary *attrDict = [NSDictionary dictionaryWithObjectsAndKeys:label.font,
NSFontAttributeName,
paragraphStyle,
NSParagraphStyleAttributeName,
nil];
CGRect expectedRect = [text boundingRectWithSize:maximumSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrDict context:nil];
CGSize expectedSize = expectedRect.size;

关于ios - 动态行高和 sizeWithAttributes 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26331411/

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