如何根据collectionView中的条件隐藏textview及其高度?

时间:2018-07-12 05:08:55

标签: ios swift uicollectionview uitextview

我有一个collectionView(rootView)。在该视图下,有许多视图,例如userProfileView,ImageViews等。底部的两个视图是commentView和commentBoxView(它具有一个配置文件图像,一个textView和一个imageView发送的消息)。如果注释在json数据中为空白,那么我想隐藏“ commentView”,如果有数据,那么我想显示“ commentView”。 “ commentBoxView”将同时出现在两个条件中。

为此,我将插座连接高度设置为“ commentView”,并检查注释是否为空,然后我写了

commentViewHeight.constant = 0
commentView.isHidden = true

,如果有评论

commentViewHeight.constant = 130
commentView.isHidden = false.

现在的问题是,当出现“ commentView”时,它可以正常运行。但是当注释为空时{@ {1}}的commentBoxView高度会增加..我已两次检查textView,但无法解决。请有人帮我解决这个问题。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

方法1

如果您使用UIStackView控制UI布局,则其中一个子视图变为hidden时,它将自动调整UI布局。


方法2

AutoLayout视频中搜索一些WWDC教程。有一种技术可以在一个UI组件上设置2组自动布局约束。例如,group Agroup B约束。

condition A中,将group B自动布局约束isActive设置为false,将group A设置为true。
condition B中,将group A自动布局约束isActive设置为false,将group B设置为true。


我更喜欢2种以上的技术。切换子视图的UI状态时,它使UI动画变得容易。


更多

有时,它需要调用UIView的{​​{1}}和setNeedsLayout()来刷新UIView框架及其子视图。