昨天发现一个问题,当我同事设置 viewA.frame 和 调用 bringSubviewToFront viewB的时候,viewA的位置没有发生变化,用动画效果也不行。网上有人说 bringSubviewToFront 会阻止动画,后来解决办法是将 bringSubviewToFront 用设置hidden和调整frame实现。
举例 :我现在有 view1.frame = (0,0,160,40);
view2.frame = (0,50,320,100);
view3.frame = (0,50,320,100);
开始的时候,view3盖住view2,当用户点了某个按钮后,我想view2盖住view3,同时将view1.frame设置为(160,0,160,40);
最开始我的代码是: view1.frame =(160,0,160,40);
[self.view bringSubviewToFront: view2];
但执行代码后,发现view2是到前面了,但view1位置没动,我用uiview的动画效果改变view1也不起作用,由于项目赶,最后把 [self.view bringSubviewToFront: view2];
替换成 view3.hidden = YES; 这样view2也到最前面了,同事view1的位置也改变了。
本文讨论了在使用UIView动画与bringSubviewToFront方法时遇到的问题,通过将bringSubviewToFront替换为设置隐藏和调整frame的方法,成功解决了视图位置未改变的问题。详细解释了原因并提供了解决方案。
1万+

被折叠的 条评论
为什么被折叠?



