スクロールビューに追加したボタンに奇妙な動作があります。
for (UIView *subview in self.scrollView.subviews) {
[subview removeFromSuperview];
}
//Create and place info Button(s)
for (int i = 0; i < BigPictures.count; i++) {
UIButton *infoButton = [[UIButton alloc] initWithFrame:CGRectMake(scrollView.frame.size.width*(i+1) - 29 - 5 - 10, scrollView.frame.size.height - 29 - 5, 29, 29)];
[infoButton addTarget:self action:@selector(flip) forControlEvents:(UIControlEvents)UIControlEventTouchUpInside];
//[infoButton setEnabled:YES];
//[infoButton setUserInteractionEnabled:YES];
[self.scrollView addSubview:[FrontViews objectAtIndex:i]];
[infoButton setBackgroundImage:[UIImage imageNamed:@"btn_image-info.png"] forState:UIControlStateNormal];
[scrollView addSubview:infoButton];
BigPictures には、スクロールビューに表示したいすべての画像が含まれています。さて、奇妙なことに。BigPictures に 1 つの画像が含まれている場合、アクション (フリップ) が呼び出されます。[BigPictures count] > 1 になるとすぐに、最初の画像のボタンはアクションを実行しませんが、他のすべてのボタン (ページ 2-n) は実行されます。では、これはどうしてでしょうか??
変更for (int i = 0; i < BigPictures.count; i++)
してfor (int i = 0; i < 1; i++)
もボタンは機能しています。
それで、私は何が欠けていますか?すでに次のようなことを試しました
scrollView.delaysContentTouches = NO;
scrollView.canCancelContentTouches = NO;
ただし、後者はスクロールビューのスクロールを無効にします。
編集:他のボタンを別の位置に配置しようとしましたが、最初のページでは機能しません(ページ> 1の場合)。また、GestureRecognizer を配置しようとしました。これは機能しますがif ([touch.view isKindOfClass:[UIButton class]])
、下のボタンを検出していません。スクロールビューの他のページではすべて正常に動作します。本当に奇妙です。