2011-10-07 30 views
0

我試圖讓我的UIScrollView佔用所有的屏幕,有它內部的圖像,用戶可以縮放,平移等,這所有的作品。但是,當用戶點擊屏幕一次時,我想要在此UIScrollView的頂部顯示一個附加視圖,並提供有關該圖片的一些信息。問題是無論我做什麼,UIScrollView的孩子ImageView總是在最前面。我試圖改變xib中的視圖的順序,我嘗試使用bringSubViewToFront沒有成功。下面是代碼:UIScrollView的內容總在最前面

- (void)viewDidLoad {  
    [super viewDidLoad]; 
    UITapGestureRecognizer *singleTapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(flipViewSingleTap:)]; 
    singleTapGesture.delegate = self;  

    self.flippedImage.userInteractionEnabled = YES; 
    [self.flippedImage addGestureRecognizer:singleTapGesture]; 

    [singleTapGesture release]; 

    self.flippedImageView.contentSize = CGSizeMake(1024, 768); 
    self.flippedImageView.delegate = self; 

    self.flippedMenuView.alpha = 0.0f; 
} 

- (IBAction)flipViewSingleTap:(UIGestureRecognizer *)sender { 
    flipItemsVisible = !flipItemsVisible; 
    [self.view bringSubviewToFront:self.flippedMenuView]; 
    [UIView animateWithDuration:0.5f 
          delay:0.0f 
         options:UIViewAnimationCurveEaseInOut 
        animations:^{ 
         self.flippedMenuView.alpha = flipItemsVisible ? 1.0f : 0.0f 
       } 
        completion:nil]; 
} 

回答

0

也許這行添加到viewDidLoad中:(這假定self.view是的UIScrollView)

[self.view addSubview:self.flippedMenuView]; 

+0

感謝您的建議,但這並不能幫助。如果我加入flippedMenuView作爲的UIScrollView的一個子視圖,它從屏幕上平移遠離了如果用戶在放大。我將它作爲頂部的獨立觀點的一點是要在運動方面,它「靜態」。 – bolshas

0

嘗試添加gestureRecognizer:shouldReceiveTouch:委託方法忽略菜單視圖。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer 
     shouldReceiveTouch:(UITouch *)touch { 
    return ![touch.view isDescendantOfView:self.flippedMenuView]; 
} 
+0

謝謝但不是,這並沒有改變任何東西。 – bolshas

+0

如果添加一個'NSLog(@「%@」,touch.view);'(並嘗試兩個總是返回「否」,然後是YES),你會看到什麼?是'flippedView'和'flippedMenuView'在同一視圖中查看子視圖? –

+0

我認爲問題與觸摸無關。即使我最初使flippedMenuView可見,在滾動圖像後面始終是portraid。 – bolshas

0

打開圖像視圖的userInteraction是不夠的。其touchesMoved/Began的默認方法是空白的(我認爲)。

確保的UIImageView的自定義的子類是flippedImageView是什麼。覆蓋這些方法併發送一個類似「userTappedImageAt:」的委託消息(自定義)。

如果你的子視圖處理只是不會帶來任何東西,你的觸摸工作,抓住應用程序委託窗口[[[UIApplication sharedApplication]委託]窗口],並添加一個子視圖,但它可能更安全使用視圖,以便您可以使用convertPoint:from/to函數。

大部分我告訴你可以從閱讀的意見和編程指南來推斷,與SO問題與答案,以獲得在頂視圖一起。

您可以隨時「滾你自己的」子視圖,以避免未知的SDK識別。

祝你好運, 斯蒂芬