2013-04-18 3 views
0

У меня есть ViewController, на котором я могу перемещать несколько UIImageView с помощью распознавателей жестов. он работает нормально, но выбранный UIImageView не находится поверх других.Как я могу сохранить UIimageView поверх других изображений uiimageview при использовании панорамирования или других жестов?

UIImageViews сохраняют порядок своего создания, так что последние всегда режут первые.

Любые советы?

ответ

1

Когда вы выбрали ваш новый UIImageView - от вашего UIViewController вы должны позвонить:

[self.view bringSubviewToFront:imageView]; 

Это должно помочь.

+0

[self.superview bringSubviewToFront: self]; сделал трюк спасибо. – Xavier

0

Вы можете использовать, [superView bringSubviewToFront:touchedview]; для приведения подвида к передним

+1

[self.superview bringSubviewToFront: self]; сделал трюк спасибо. – Xavier

+0

@ Xavier дал правильное решение –

0

Что вам нужно сделать, это программно изменить их порядок. Вы можете сделать это следующим образом

-(void)bringTheDesiredImageViewInFront:(int))_tagForImageView 
    { 
     for(UIImageView *_subView in self.view.subviews) 
     { 
      if([_subView isKindOfClass:[UIImageView class]]) 
      { 
       UIImageView *temp=(UIImageView *)_subView; 

       if([temp tag]==_tagForImageView) 
         [self.view bringSubviewToFront:temp]; 
      } 
      else 
       continue; 


     } 
    } 

вызова этот метод каждый раз, когда селектор для любого gestureRecognizer называется на любой UIImageView. Также задайте разные значения тегов для разных UIImageView. Вышеуказанный метод можно назвать следующим образом:

UIImageView *imageView=[[UIImageView alloc] init]; 
    [imageView setTag:1]; 

    [self bringTheDesiredImageViewInFront:imageView.tag] 
+0

Немного сложно, я думаю, для своих нужд, но большое спасибо! – Xavier