2

ユーザーが画像の UIScrollView をタップしたときにのみ表示されるように UIButton をコーディングするにはどうすればよいですか。

 - (void)viewDidLoad

{    
 self.view.backgroundColor = [UIColor blackColor];
  UIScrollView *imageScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
   imageScrollView.pagingEnabled = YES;
NSInteger numberOfViews = 61;
for (int i = 0; i < numberOfViews; i++) {
    CGFloat xOrigin = i * self.view.frame.size.width;

    UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];

    [myButton addTarget:self action:@selector(dismissView:) forControlEvents:UIControlEventTouchUpInside];

    myButton.frame = CGRectMake(xOrigin, 10, 60, 35);

    [myButton.layer setMasksToBounds:YES];

    [myButton.layer setCornerRadius:10.0f];

    myButton.layer.borderWidth = 2;

    myButton.layer.borderColor = [[UIColor whiteColor] CGColor];

    [myButton setTitle:@"Done" forState:UIControlStateNormal];

    myButton.backgroundColor = [UIColor blackColor];

    NSString *imageName = [NSString stringWithFormat:@"image%d.png", i];
    UIImage *image = [UIImage imageNamed:imageName];
    UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
    imageView.frame = CGRectMake(xOrigin, 0, self.view.frame.size.width, self.view.frame.size.height);
    [imageScrollView addSubview:imageView];
    [imageScrollView addSubview:myButton];
    [imageView release];
}
imageScrollView.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, self.view.frame.size.height);
[self.view addSubview:imageScrollView];
[imageScrollView release];
}

現在、すべての画像ビューに表示されていますが、画面をタップしたときにのみ UIButton Done を表示する必要があります。

編集:私が追加した場合

 [imageView addGestureRecognizer: tap];

ジェスチャレコグナイザを開始します

  UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
   tap.numberOfTapsRequired = 1;
  [self addGestureRecognizer:tap];
  [tap release];

次に、ユーザーが画像ビューをタップしたときに完了ボタンを表示するようにハンドルタップメソッドでコードを作成するにはどうすればよいですか

 - (void)handleTap:(UIGestureRecognizer*)tap {

   }

手伝ってくれてありがとう。

4

2 に答える 2

5

ViewController ではなく、画像ビューにジェスチャ レコグナイザーを追加する必要があります。

また、次のように画像ビューのユーザー操作を有効にする必要があります。

imageView.userInteractionEnabled = YES;
于 2012-10-03T14:54:42.750 に答える
2

UIScrollViewDelegateスクロールしてボタンが表示されるときにメソッドをチェックし、そのボタンを非表示にする場合は非表示にします。

[imageView addGestureRecognizer:tap];そして、代わりに設定するhandleTapの場合[self addGestureRecognizer:tap];

ボタンを作成しViewDidLoadて最初に非表示にし、ユーザーが画像をタップしたときに設定した`

button.hidden = NO;
于 2012-10-03T14:55:26.203 に答える