gpt4 book ai didi

ios - 属性文本 boundingRectWithSize 返回错误的大小

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:47:34 26 4
gpt4 key购买 nike

非常简单的问题,我正在尝试动态获取 UILabel 的高度,而且 boundingRectWithSize:options:context: 似乎忽略了我的第二行。我在下面粘贴了相关代码:

CGSize maximumLabelSize = CGSizeMake(self.frame.size.width,CGFLOAT_MAX);
return [self.attributedText boundingRectWithSize:maximumLabelSize options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;

我认为我设置正确,但是无论是 1 行还是 2 行,它都会返回 17(在获取高度并四舍五入之后)。任何帮助将不胜感激!

编辑:使用 NSStringDrawingUsesFontLeading 时,它会完全切断我的第二行。

最佳答案

希望对您有所帮助。这是一个简单的解决方案。需要将预期高度四舍五入。

+ (void)adjust:(UILabel *)label withString:(NSString*)string withMaximumSize:(CGSize)maxSixe{

CGRect expectedLabelRect = [string boundingRectWithSize:maxSixe
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName: label.font}
context:nil];
expectedLabelRect.size.height = ceilf(expectedLabelRect.size.height);

//adjust the label the the new height.
CGRect newFrame = label.frame;
newFrame.origin.y += (newFrame.size.height - expectedLabelRect.size.height) * 0.5;
newFrame.size.height = expectedLabelRect.size.height;

label.numberOfLines = ceilf(newFrame.size.height/label.font.lineHeight);
label.frame = newFrame;
}

关于ios - 属性文本 boundingRectWithSize 返回错误的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31193570/

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