【问题标题】:How to evaluate string width and convert to CGFloat (swift)如何评估字符串宽度并转换为 CGFloat (swift)
【发布时间】:2016-07-18 01:54:01
【问题描述】:

我找到了这些代码,但似乎不起作用。

 func evaluateStringWidth (textToEvaluate: String) -> CGFloat{
    letfont = NSFont.userFontOfSize(NSFont.systemFontSize())
    let attributes = NSDictionary(object: font!, forKey:NSFontAttributeName)
    let sizeOfText = textToEvaluate.sizeWithAttributes((attributes as! [String : AnyObject]))
    return sizeOfText.width
}

【问题讨论】:

  • 请更具体地描述您的问题。 “它不起作用”是什么意思?它不编译?它会导致运行时错误吗?或者它返回了一些意想不到的东西?您需要指定您使用的平台。您显示的代码适用于 OS X (macOS)。您确定要在 OS X 上测试您的代码吗?

标签: swift


【解决方案1】:

我不明白你的意思。 所以,我靠猜测来回答。

func evaluateStringWidth (textToEvaluate: String) -> CGFloat {
    let maxSize = self.view.frame.size //set your view or label size
    let attributesDictionary = [NSFontAttributeName: UIFont.systemFontOfSize(14.0)] //set your font object
    let textSize = NSString(string: textToEvaluate).boundingRectWithSize(maxSize, options: .UsesLineFragmentOrigin, attributes: attributesDictionary, context: nil)

    return textSize.width
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-24
    • 2014-09-23
    • 1970-01-01
    相关资源
    最近更新 更多