2012-03-29 13 views
-1

iPhoneアプリのFacebookのようなサイドナビゲーションを実装しようとしています。私はそれを問題なく出し入れすることができますが、そのナビゲーション・ビュー内のボタンや何かをクリックしたいときは何も起こりません。ここで目的C:サブビューをクリックできない

は、私がのviewDidLoadで初期化し、私のサイド・ナビゲーション・ビューのコードです:

self.sideNavigationView = [[UIView alloc] initWithFrame:CGRectMake(self.navigationController.view.frame.size.width, 20, 238, self.navigationController.view.frame.size.height-20)]; 
[self.navigationController.view addSubview:self.sideNavigationView]; 

その後、私はそれをスライドするには、次の方法があります。

- (IBAction) openMenuBar: (id) sender {  
if (!self.sideNavigationIsExpanded) { 
    self.sideNavigationView.frame = CGRectMake(self.navigationController.view.frame.size.width, 20, 238, self.navigationController.view.frame.size.height-20); 

} 
CGRect destination = self.navigationController.view.frame; 
CGRect sideNavigationDestination = self.sideNavigationView.frame; 

sideNavigationDestination.size.width = 238; 


// Slide back 
if (self.sideNavigationIsExpanded) {  
    sideNavigationDestination.origin.x = self.view.frame.size.width; 
    destination.origin.x = 0; 
    sideNavigationDestination.origin.y = 20; 
    self.sideNavigationIsExpanded = NO; 
} 
// Slide in 
else { 
    sideNavigationDestination.origin.x = self.view.frame.size.width; 
    destination.origin.x = - sideNavigationDestination.size.width;    

    sideNavigationDestination.origin.y = 20; 
    self.sideNavigationIsExpanded = YES; 

    self.sideNavigationView.hidden = NO; 
} 


[UIView animateWithDuration:0.25 animations:^{ 

    self.sideNavigationView.frame = sideNavigationDestination; 
    self.navigationController.view.frame = destination;   


} completion:^(BOOL finished) { 
    if (!self.sideNavigationIsExpanded) 
     self.sideNavigationView.hidden = YES; 
    self.view.userInteractionEnabled = !self.sideNavigationIsExpanded; 
    self.sideNavigationView.userInteractionEnabled = self.sideNavigationIsExpanded;   
}]; 

    } 

を私は= userInteractionEnabledのいくつかの組み合わせを試してみましたすべてのサブビューでYES ...何も変更されていません... 私のサイドビューのサブビューが視覚不可能なので初期化すると選択できません。私は視覚的にフレーム(CGRectMake(0,0,238,300))で初期化しようとしました。 -_- どうすれば問題を解決できますか? sideNavigationViewとして

答えて

0

は、このラインself.viewのサブビューです:

self.view.userInteractionEnabled = !self.sideNavigationIsExpanded; 

は、すべてあなたのsideNavigationViewに到達するのタッチを妨げています。次の行でサブビューのプロパティをYESに設定していても、独自のuserInteractionEnabledプロパティがNOに設定されていると、ビューはそのサブビューにタッチを渡しません。

オフスクリーンの初期設定に関しては、画面上を一度戻ってもビューがタッチを受け取れるかどうかは関係ありません。

関連する問題