我有一个问题,我设计了一个带有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之上,但显示它们时出现问题。
原因可能是什么,你能否提出一些我仍然可以实现目标的事情。
由于
答案 0 :(得分:1)
在动画期间,视图将保持相同的Z顺序。我假设(因为你没有包含那部分代码)你已经添加了UIButtonView和UIImageView以便它们不重叠,当然z-order只有在对象重叠时才会变得明显。 z顺序由您将子视图添加到其父视图的顺序决定。
要使UIButtonViews出现在UIImageView的顶部,最后添加它们。您还可以使用[sendSubviewToBack]和[bringSubviewToFront]等方法更改顺序。