gpt4 book ai didi

ios - 如何根据String长度获取CGFloat/CGSize?

转载 作者:行者123 更新时间:2023-11-30 12:05:55 24 4
gpt4 key购买 nike

我有一个 UIView,它充当容器,并且该容器的宽度需要根据最长的字符串动态更改。所以我想根据字符串长度获取CGFloat/CGSize,还可以吗?

看起来最有用的方法现在已经被贬值了......

myStringSize : CGSize  = [longestString sizeWithFont:myFont 
constrainedToSize:maximumSize
lineBreakMode:self.myLabel.lineBreakMode];

我不想将其基于标签,而是希望将其基于字符串

最佳答案

您必须给出已知的宽度或高度:

extension String {

func getHeight(with width: CGFloat, font: UIFont) -> CGFloat {
let maxSize = CGSize(width: width, height: CGFloat.greatestFiniteMagnitude)
let actualSize = self.boundingRect(with: maxSize, options: [.usesLineFragmentOrigin], attributes: [NSFontAttributeName: font], context: nil)
return actualSize.height
}


func getWidth(with height: CGFloat, font: UIFont) -> CGFloat {
let maxSize = CGSize(width: CGFloat.greatestFiniteMagnitude, height: height)
let actualSize = self.boundingRect(with: maxSize, options: [.usesLineFragmentOrigin], attributes: [NSFontAttributeName: font], context: nil)
return actualSize.width
}
}

关于ios - 如何根据String长度获取CGFloat/CGSize?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46686613/

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