我仍在尝试将TextKit从Objective-C转换为Swift。它让我(和你?)发疯:-(
解决了一些问题之后,现在我遇到了粗体(和斜体)字体的问题:

xcode - 无法转换“UInt32”类型的值!到预期的参数类型'UIFontDescriptorSymbolicTraits'-LMLPHP

func addOrRemoveFontTraitWithName(traitName: String, andValue traitValue: UInt32, andRange selectedRange: NSRange) {

    let currentAttributesDict : NSDictionary! = self.textView.textStorage.attributesAtIndex(selectedRange.location, effectiveRange: nil)
    let currentFont : UIFont = currentAttributesDict .objectForKey(NSFontAttributeName) as! UIFont
 ...
    var existingTraitsWithNewTrait : UInt32! = nil
    var changedFontDescriptor : UIFontDescriptor! = nil
    if  fontNameAttribute.rangeOfString(traitName).location == NSNotFound {
        existingTraitsWithNewTrait = fontDescriptor.symbolicTraits.rawValue | traitValue
        changedFontDescriptor = fontDescriptor.fontDescriptorWithSymbolicTraits(UIFontDescriptorSymbolicTraits.TraitBold)
    } else {
        existingTraitsWithNewTrait =  fontDescriptor.symbolicTraits.rawValue & ~traitValue
        changedFontDescriptor =
            fontDescriptor.fontDescriptorWithSymbolicTraits(existingTraitsWithNewTrait) // !!!!
   }


在最后一行中,我得到了错误
无法转换“ UInt32”类型的值!到预期的参数类型'UIFontDescriptorSymbolicTraits'

我必须将UInt32转换为UIFontDescriptorSymbolicTraits吗?另一种方法是使用.rawValue。但是我不知道该怎么做。 :-(

欢迎任何帮助!

最佳答案

在错误行中尝试使用UIFontDescriptorSymbolicTraits(rawValue: existingTraitsWithNewTrait)代替existingTraitsWithNewTrait

关于xcode - 无法转换“UInt32”类型的值!到预期的参数类型'UIFontDescriptorSymbolicTraits',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36015218/

10-12 06:28