从Objective-C到Swift的UITextView类,intrinsicContentSize问题[关闭]
Posted
技术标签:
【中文标题】从Objective-C到Swift的UITextView类,intrinsicContentSize问题[关闭]【英文标题】:UITextView Class, intrinsicContentSize issue from Objective-C to Swift [closed] 【发布时间】:2020-01-22 12:49:34 【问题描述】:我一直在 Objective-C 中工作,我使用 Swift 的时间很短。我在 Objective- 中有一个 UITextView
类C 我正在研究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
似乎给了我一个
类型错误的值'(UITextRange)->字符串?没有成员“长度”
【问题讨论】:
见***.com/questions/24037711/get-the-length-of-a-string Swift 中检索字符串长度的方式不同 @ArikSegal 我试图替换 text.length context.count 或 text.character.count 但它一直给我同样的错误..因此我不明白我错在哪里 代码中的错字:lenght
→ length
这能回答你的问题吗? Get the length of a String
【参考方案1】:
试试这个
override var intrinsicContentSize: CGSize
return text.isEmpty ? .zero : contentSize
内在内容大小取决于文本长度(字符串中的字符数),我们返回所需的大小
【讨论】:
text.isEmpty
会是更好的解决方案。
@Sulthan 没错,我已经更新了代码【参考方案2】:
你可以在swift
下面这样使用
override var intrinsicContentSize: CGSize
if self.text.count > 0
return contentSize
else
return CGSize.zero
希望对你有所帮助。
【讨论】:
以上是关于从Objective-C到Swift的UITextView类,intrinsicContentSize问题[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
从 Objective-C 到 Swift 的 Swift 传递块
将数据从 Swift 控制器传递到 Objective-C 控制器