UITextView Class,intrinsicContentSize 问题从 Objective-C 到 Swift

UITextView Class, intrinsicContentSize issue from Objective-C to Swift

一直在Objective-C工作,使用Swift时间不长。 . 我在 Objective-C 中有一个 UITextView class,我正在研究 intrinsicContentSize 方法。


Objective-C

-(CGSize)intrinsicContentSize {
    if ([self.text length]) return self.contentSize;
    else return CGSizeZero;
}

现在我正在尝试将我的 Objective-C 代码转换为 Swift 但我在使用此函数时遇到问题...

 override var intrinsicContentSize: CGSize {
         if text.lenght() {
              return contentSize
          } else {
              return CGSize.zero
          }
    }

text.lenght 似乎给了我一个

Value of type error '(UITextRange) -> String? has no member 'length'

您可以像下面这样使用 swift

override var intrinsicContentSize: CGSize {
     if self.text.count > 0 {
        return contentSize
     } else {
        return CGSize.zero
     }
 }

希望对你有所帮助

试试这个

override var intrinsicContentSize: CGSize {
    return text.isEmpty ? .zero : contentSize
}

内部内容大小取决于文本长度(字符串中的字符数),我们return需要的大小