【发布时间】:2021-03-04 17:12:11
【问题描述】:
我在UIView 中有一个UITextView,我希望用户能够通过点击它来显示和隐藏它。 UITextView 和每侧 10 个约束。目前,当用户点击视图时,文本确实会消失,但是您仍然可以看到 UITextView 所在的位置,因为 UITextView 所在的位置大约有一行空间。
这是我用来调整UITextView 可见性的代码:
if(collapseArray[indexPath.row]){
cell.noteText?.text = nil
}else{
cell.noteText?.text = notesArray[indexPath.row]
}
我尝试设置.isHidden 属性,但得到相同的结果。当我使用UILabel 时,我能够得到想要的结果,但是我希望文本是可编辑的。
这就是我要说的
如您所见,test 一词下方仍有很大的空间,即UILabel,其约束条件一直为 10。
这是我用于以下给定答案的代码:
class NoteTableViewCell: UITableViewCell, UITextViewDelegate {
@IBOutlet weak var noteTitle: UILabel!
@IBOutlet weak var noteText: UITextView!
@IBOutlet weak var cardView: UIView!
var textViewHeightConstraint: NSLayoutConstraint!
override class func awakeFromNib() {
textViewHeightConstraint = noteText.heightAnchor.constraint(equalToConstant: 0)
textViewHeightConstraint.priority = .defaultLow
textViewHeightConstraint.isActive = true
}
}
但是这给了我错误:
Instance member 'noteText' cannot be used on type 'NoteTableViewCell'
【问题讨论】:
-
隐藏不会改变约束,只会让它不可见。您可能对
UIStackView感兴趣。否则,您可以使用约束来执行此操作。 -
这看起来像一个 TableView 单元格,对吗?单元格是通过 XIB 构建的还是以编程方式完成的?
标签: swift uiview uilabel uitextview