gpt4 book ai didi

ios - 如何找到自动增长的 UILabel 的实际高度

转载 作者:行者123 更新时间:2023-11-28 20:59:34 25 4
gpt4 key购买 nike

我已将 UIlabel 的行数设置为零,以便其高度会根据其内容进行调整。

有时如果我给出一个大文本,它在 UI 中会增长到 4 行,但是当我访问它时

frame.size.height

它返回 21 而不是实际高度,实际高度比那个大得多。

关于如何解决这个问题有什么想法吗?

最佳答案

迅速

public  static func requiredHeightForLabel(text : String, font : UIFont, width : CGFloat)   -> CGFloat {

let label:UILabel = UILabel(frame: CGRect(x: 0, y: 0, width: width, height: .greatestFiniteMagnitude))//UILabel(frame: CGRectMake(0, 0, width, CGFloat.max))
label.numberOfLines = 0
label.lineBreakMode = .byWordWrapping
label.font = font
label.text = text

label.sizeToFit()
return label.frame.height
}

objective-c

+(CGFloat)getLabelHeightForString:(NSString *)string font:(UIFont *)font 
{
CGSize size = CGSizeMake(lablwidth, MAXFLOAT);

NSStringDrawingContext *context = [[NSStringDrawingContext alloc] init];

CGSize boundingBox = [string boundingRectWithSize:size

options:NSStringDrawingUsesLineFragmentOrigin

attributes:@{NSFontAttributeName:font}

context:context].size;

size = CGSizeMake(ceil(boundingBox.width), ceil(boundingBox.height));

return size.width;

}

关于ios - 如何找到自动增长的 UILabel 的实际高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50149796/

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