我使用GitHub中的JSSAlertView,在将Xcode更新为7.0后,我的代码出错了 错误是'无法将类型的值'[String:UIFont?]'转换为预期的参数类型'[String:AnyObject]?' 我无法理解NSFontAttributeName:textView.font做了什么
// Position text
if self.textView != nil {
let textString = textView.text! as NSString
let textAttr = [NSFontAttributeName:textView.font]
let realSize = textView.sizeThatFits(CGSizeMake(contentWidth, CGFloat.max))
let textSize = CGSize(width: contentWidth, height: CGFloat(fmaxf(Float(90.0), Float(realSize.height))))
let textRect = textString.boundingRectWithSize(textSize, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: textAttr, context: nil)
self.textView.frame = CGRect(x: self.padding, y: yPos, width: self.alertWidth - (self.padding*2), height: ceil(textRect.size.height)*2)
yPos += ceil(textRect.size.height) + padding/2
}
答案 0 :(得分:0)
NSStringDrawingOptions
是一组选项。您必须提供一个值,例如NSStringDrawingOptions.UsesFontLeading
。
有关详细信息,请参阅NSAttributedString UIKit Additions Reference。
编辑:
要回答您编辑的问题,textView.font
是可选的。解包它的最简单方法是添加感叹号textView.font!
。但我更喜欢条件绑定。了解选项here。