2

ボタン付きのView-Controllerがあります。ボタンが押されたときに、 View-Controllerに新しいビューが読み込まれるようにします。既存のビューを置き換えるものではありません。画面よりも小さくして、小さなビューをタップすると非表示にする必要があります。

コードでどのように実装する必要がありますか?

4

2 に答える 2

3
- (IBAction)button:(id)sender 
{
UIView *view2=[[UIView alloc]initWithFrame:CGRectMake(0,0,200,200)];
[self.view addSubview:view2];
UITapGestureRecognizer *Tap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(Tapview)] autorelease];
[view2 addGestureRecognizer:Tap];
}

-(void)Tapview
{
[view2 removeFromSuperview];
}
于 2012-09-19T06:35:39.130 に答える
2

次のようにタップ ジェスチャを self.view に追加します。

 UITapGestureRecognizer *oneFinger = 
 [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(oneFingerAction:)] autorelease];

// Set required taps and number of touches
[oneFinger setNumberOfTapsRequired:1];
[oneFinger setNumberOfTouchesRequired:1];

// Add the gesture to the view
[[self view] addGestureRecognizer:oneFinger];

.h ファイルに BOOL フラグを 1 つ追加します。ViewDidLoad メソッドでこれを追加します。

 flag = FALSE;

ここで、次のように画面に追加される UIView *smallView があると仮定します。

[self.view addSubView:smallView];
flag = TRUE;
smallView.center = self.view.centre;

self.view をタップすると、タップ ジェスチャ アクションが呼び出されるようになりました

- (void)oneFingerAction:(UITapGestureRecognizer*)sender
{
   if(sender.view == self.view)
   { 
     if(flag){
       if(smallView)
       {
         [smallView removeFromSuperView];
       }
     }
   }
}
于 2012-09-19T06:34:19.610 に答える