2016-07-18 6 views
-4

私はこれらのコードを見つけましたが、うまくいかないようです。文字列幅を評価してCGFloat(swift)に変換する方法

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 
} 
+1

問題を具体的に説明してください。 「うまくいかない」とはどういう意味ですか?それはコンパイルされませんか?ランタイムエラーの原因になりますか?それとも予期しない何かを返しますか?そして、使用しているプラ​​ットフォームを指定する必要があります。あなたが表示したコードは、OS X(macOS)用です。 OS Xでコードをテストしていますか? – OOPer

答えて

0

私はあなたが意味するものを正確に理解できません。 私は推測で答えました。

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 
} 
関連する問題