UIImageView перекрывает UIbutton - PullRequest
0 голосов
/ 20 июля 2009

У меня есть вопрос, я спроектировал приложение с помощью кнопок UIB, и ниже UIImageView. Моя проблема была в том, что когда я запускаю свое приложение, кнопки UIB попадают под UIImageView. Вот мой код для моих UIB-кнопок.

Код:

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, а затем четыре кнопки UIB. UIImageView просто служит фоном для моих четырех кнопок UIB. Когда запускаются приложения, все отображается правильно, но когда я нажимаю значок, чтобы выполнить код, проблема начинается.

Это то, что я наблюдал, четыре кнопки UIB выглядят мерцающими, и все же они могут принимать события клика. Мой вывод заключается в том, что кнопки UIB все еще находятся над UIImageView, но при их отображении возникает проблема.

Что может быть причиной этого, Можете ли вы предложить что-то, что я все еще могу выполнить мою цель.

Спасибо

1 Ответ

1 голос
/ 20 июля 2009

Представления останутся в том же Z-порядке во время анимации. Я предполагаю (поскольку вы не включили эту часть кода), что вы добавили UIButtonView и UIImageView, чтобы они не перекрывались и, конечно, z-порядок становится очевидным только тогда, когда объекты перекрываются. Z-порядок определяется порядком, в котором вы добавляете дочерние представления к их родительскому представлению.

Чтобы UIButtonViews отображались поверх UIImageView, добавьте их последними. Вы также можете изменить порядок с помощью таких методов, как [sendSubviewToBack] и [yieldSubviewToFront].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...