Maison > Questions et réponses > le corps du texte
这两种方式,效果一样?我指的是性能方面
天蓬老师2017-04-17 17:42:45
我觉得这个你得自己看情况,用Hidden确实很方便,但是今天我使用的时候发现并不好控制,不是逻辑不好控制,只是当你在父视图中添加一个view的时候,如果你之前添加了,那么就在下面,这样你肯定是不能去点击了,所以当我需要点击它上面视图的时候它能消失,可是它本身上面就有按钮,也需要事件响应,这样你根本点击不了上面,当然你可以让它成为第一层,这个虽然没尝试,但是可以知道,我使用frame就可以让它在上面,而实用hidden却是在下面,
这个情况是因为使用了一个BaseViewcontroller,(继承的ViewCointroller 并添加微UInavigationViewcontroller ,便于压栈),其他的视图都是继承它的,在BaseViewController 中的导航栏中的按钮中添加响应事件,当MoreBtn.hidden == NO 的时候,我就在viewWillAppear中创建MoreView,也就是这个view。OK , 我需要的是:当点击MoreBtn的时候点击一下就出现MoreView,再次点击需要MoreView消失,点击其它地方也是MoreView消失,刚开始以为很简单,使用touchBegin以为就可以了,但是实际上是需要点击在在父视图中的view才有响应,当前的viewController中除了导航栏以下都是一个tableView,不要以为你继承了BaseViewcontroller之后,你点击的任何地方它都会响应,你必须给tableView添加点击事件才有事件响应,对此我使用的Hidden的话就没法响应,只能设置frame。
本来是想来寻找区别的,刚看到题目,就来讨论了一下。
===========
不好意思 ,之前回答错了,应该不是frame的原因,后来发现是touch方法的原因,因为那个view也属于self.view,所以,touch方法中要它消失的时候,点击它自己也会消失,这样是不对滴,所以我就规定了它点击的范围使用的CGpoint,包含在导航栏范围的时候就消失,确实是很笨的方法,如果还有啥好方法,再研究,不好意思,看来hidden和frame的功能其实是可以相同的也许还有什么需要我们去探索吧!加油