昨天发现一个问题,当我同事设置 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的位置也改变了。