gpt4 book ai didi

ios - BoundingRectWithSize - 选择使用的字体和字体大小

转载 作者:行者123 更新时间:2023-11-28 13:10:04 25 4
gpt4 key购买 nike

我正在使用 BoundingRectWithSize 取回一个 CGRect,它将适本地修复我的文本。我以前有这个代码。

var maximumLabelSize: CGSize = CGSize(width: view.bounds.width-5, height: 150)
var maximumLabelSize: CGSize = CGSize(width: view.bounds.width-5, height: 150)
var labelRect: CGRect = (matches[indexPath.item].name as NSString).boundingRectWithSize(maximumLabelSize, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: [NSFontAttributeName: UIFont.systemFontOfSize(16)], context: nil)

将字体更改为 HelviticaNeue-Bold 时,我的许多标签都没有全屏显示。我的假设是,由于我将字体更改为粗体,文本不再适合其边界 CGRects,因此将字符串剪短。

我建议的修复是编辑为我的文本创建初始适当边界 CGRect 的代码,以考虑到文本的粗体性质。这是我的尝试。

var labelRect: CGRect = (matches[indexPath.item].name as NSString).boundingRectWithSize(maximumLabelSize, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: [NSFontAttributeName: UIFont(name: "HelveticaNeue-Bold", size: 16)], context: nil)

我收到一条错误消息,指出我提供的参数不正确。

Cannot invoke 'boundingRectWithSize' with an argument list of type '(CGSize, options: NSStringDrawingOptions, attributes: [String : UIFont?], context: nil)'

根据 iOS 开发者库,这些是合适的参数。

func boundingRectWithSize(_ size: CGSize,
options options: NSStringDrawingOptions,
attributes attributes: [String : AnyObject]?,
context context: NSStringDrawingContext?) -> CGRect

冲突在属性内部,显然是我更改的区域,但至少这证实了这一点。我不确定如何进一步寻求解决方案。任何有助于理解这一点的帮助将不胜感激。

最佳答案

在进一步分析我自己提供的 boundingRectWithSize 参数与 iOS 开发人员库中列出的参数之间的对比后,我想知道如果我将 UIFont 转换为 AnyObject 会发生什么。

var labelRect: CGRect = (matches[indexPath.item].name as NSString).boundingRectWithSize(maximumLabelSize, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: [NSFontAttributeName: UIFont(name: "HelveticaNeue-Bold", size: 16) as! AnyObject], context: nil)

boundingRectWithSize 的属性参数接受类型 [String : AnyObject] 而我应该提供 [String : UIFont?]。我类型转换了我的 UIFont?到任何对象。这消除了错误,也解决了我的问题。粗体文本不再被缩短。已解决。

关于ios - BoundingRectWithSize - 选择使用的字体和字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31682343/

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