UIImageView重叠UI按钮

时间:2009-07-20 08:57:07

标签: iphone uiview

我有一个问题,我设计了一个带有UIButtons的应用程序,下面是一个UIImageView。我的问题是当我启动我的应用程序UIButtons在UIImageView下面。这是我的UIButtons的代码。

代码:

CALayer *touchedLayer = [myUIButton layer];
CABasicAnimation *wiggleAnimation = [CABasicAnimation animationWithKeyPath:@"transform"];

wiggleAnimation.duration = .1;
wiggleAnimation.repeatCount = 1e100f;
wiggleAnimation.autoreverses = YES;

wiggleAnimation.fromValue = [NSValue valueWithCATransform3D:CATransform3DRotate(touchedLayer.transform, -.15 , 0.0 , -1.0 ,-1.5)];
wiggleAnimation.toValue = [NSValue valueWithCATransform3D:CATransform3DRotate(touchedLayer.transform, -.15 , 0.0 , -1.0 ,-1.5)];

[touchedLayer addAnimation:wiggleAnimation forKey:@"wiggle"];

当动画开始时,我的UIButtons位于下方,而我的UIImageView位于UIButtons之上,为什么?


这里发生了什么,我先在IB中设计它,然后放入UIImageView,然后是四个UIButtons。 UIImageView只是我的四个UIButton的背景。 当应用程序启动时,一切都正确显示,但当我单击图标执行代码时,问题就开始了。

这是我观察到的,四个UIButton看起来像闪烁,但它仍然可以接受点击事件。我的结论是UIButtons仍然在UIImageView之上,但显示它们时出现问题。

原因可能是什么,你能否提出一些我仍然可以实现目标的事情。

由于

1 个答案:

答案 0 :(得分:1)

在动画期间,视图将保持相同的Z顺序。我假设(因为你没有包含那部分代码)你已经添加了UIButtonView和UIImageView以便它们不重叠,当然z-order只有在对象重叠时才会变得明显。 z顺序由您将子视图添加到其父视图的顺序决定。

要使UIButtonViews出现在UIImageView的顶部,最后添加它们。您还可以使用[sendSubviewToBack]和[bringSubviewToFront]等方法更改顺序。