2009-07-20 5 views
0

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

Код:

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

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

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

Благодаря

ответ

1

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

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

Смежные вопросы