2012-06-14 88 views
1

我有sendSubviewToBackinsertSubview:belowSubview:方法有问题不工作。简单地说,我有一个按钮,我在另一个视图_centerView下面插入。我想让按钮保持在_centerView以下。问题与sendSubviewToBack和insertSubview:belowSubview:他们应该

我面临的问题是,当我在_centerView下方插入一个按钮时,我看到_centerView上闪烁(只是很短的时间)。我试过sendSubviewToBack:insertSubview:belowSubview: - 效果相同。

你有什么想法可能是错误的东西?我错过了什么吗?这里是我的代码:

UIButton* itemButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [itemButton setFrame:CGRectMake(0, 0, 40, 40)]; 
    [itemButton setCenter:_centerView.center]; 

    [parentView bringSubviewToFront:_centerView]; 
    [parentView insertSubview:itemButton belowSubview:_centerView]; 
+0

..以及当你删除'bringSubviewToFront:'? – skram

+0

@skram什么都没有,没有区别。 – RaffAl

回答

0

好了,经过一段时间它原来,这是窗口的错,我的动画,同时我添加的按钮。我不知道为什么,但窗口动画的淡入造成了这个问题。我切换了我的UIWindow的动画,现在它可以工作。感谢帮助!

0

我不知道背后insertSubview内部结构是什么,但如果你想摆脱闪烁的,最简单的方法是将其插入和展前隐藏视图之后再次。

[itemButton setHidden:YES]; 
[parentView insertSubview:itemButton belowSubview:_centerView]; 
[itemButton setHidden:NO]; 

不是最优雅的解决方案,但它应该完成工作。

+0

我试过了,但是ti没有做任何改变。还是一样。 – RaffAl

+0

嗯。如果你拿出'[itemButton setHidden:NO]',那么它还会闪烁吗?如果不是,您可能需要隐藏它,直到它从_centerView后面出现。尽管如此,我无法在我的设备上重现此问题,因此我不确定这是否会有所帮助。 –

2

我最近遇到了同样的问题,但通过此选项可将动画代码固定它。希望这对你也有帮助。虽然没有你的评论,我不会拿出我的解决方案,所以谢谢:)

UIViewAnimationOptionShowHideTransitionViews 
相关问题