这两种方式,效果一样?我指的是性能方面
欢迎选择我的课程,让我们一起见证您的进步~~
修改一个视图的frame,或者是将视图从父视图上移除会直接导致调用该视图的layoutSubviews方法,而且如果设置了contentMode为UIViewContentModeRedraw的话,也会导致调用drawRect方法。此时如果你自定义了这俩个方法来做一些绘制和布局工作,将会消耗CPU和GPU来做你的工作。
因此,如果仅仅是为了隐藏视图的话,直接使用hidden属性即可。
设置 hidden 比较常见。
对于用户来说一样,不过还是系统的hiden比较靠谱。
可以这样[self.xxx removeFromSuperview],看需求了
hiden更好
hidden了之后他还是要占据位置的,他的相关约束也都存在,看需求了
如果有子视图还是用hidden或者removefromsuperview
一般情况下用hiden就好了,但如果有有约束需要改或者需要layoutsubview,还是移除或者改frame的好。
隐藏的话直接设置hidden就好啦,不然hidden这个名字直接翻译过来就是隐藏,不用干嘛呢~
一般hidden比较靠谱 因为你不用去更改原来的frame 当你需要再次显示的时候 直接修改属性就可以了。每次都更改frame 不仅慢 而且修改原来控件 。对于约束的情况 更改frame的话 可以不用重新约束 不然还得卸载constraint 。分情况看吧
修改一个视图的frame,或者是将视图从父视图上移除会直接导致调用该视图的layoutSubviews方法,而且如果设置了contentMode为UIViewContentModeRedraw的话,也会导致调用drawRect方法。此时如果你自定义了这俩个方法来做一些绘制和布局工作,将会消耗CPU和GPU来做你的工作。
因此,如果仅仅是为了隐藏视图的话,直接使用hidden属性即可。
设置 hidden 比较常见。
对于用户来说一样,不过还是系统的hiden比较靠谱。
可以这样[self.xxx removeFromSuperview],看需求了
hiden更好
hidden了之后他还是要占据位置的,他的相关约束也都存在,看需求了
如果有子视图还是用hidden或者removefromsuperview
一般情况下用hiden就好了,但如果有有约束需要改或者需要layoutsubview,还是移除或者改frame的好。
隐藏的话直接设置hidden就好啦,不然hidden这个名字直接翻译过来就是隐藏,不用干嘛呢~
一般hidden比较靠谱 因为你不用去更改原来的frame 当你需要再次显示的时候 直接修改属性就可以了。每次都更改frame 不仅慢 而且修改原来控件 。对于约束的情况 更改frame的话 可以不用重新约束 不然还得卸载constraint 。分情况看吧