1

我有一个问题sendSubviewToBackinsertSubview:belowSubview:方法。简单地说,我有一个按钮,我将其插入到另一个视图下方_centerView。我希望按钮保持在_centerView.

我面临的问题是,当我在下方插入一个按钮时,_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];
4

3 回答 3

2

我最近遇到了同样的问题,但是将此选项传递给动画代码修复了它。希望这对您也有帮助。如果没有你的评论,我不会想出我的解决方案,所以谢谢你:)

UIViewAnimationOptionShowHideTransitionViews
于 2012-06-24T01:49:59.043 回答
0

我不确定背后的内部结构insertSubview是什么,但如果你想摆脱闪烁,最简单的方法是在插入之前隐藏视图并在之后再次显示它。

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

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

于 2012-06-14T17:20:40.610 回答
0

好的,过了一会儿,事实证明这是我在添加按钮的同时制作动画的窗口的错误。我不知道为什么,但是窗口动画的淡入导致了这个问题。我切换了 UIWindow 的动画,现在它可以工作了。感谢帮助!

于 2012-06-18T14:07:57.340 回答