私はフォトギャラリーのように動作するアプリを持っており、ユーザーが画像を削除する機能を実装しています。ここにはセットアップがあります:私は9 UIImageViews、imageView、imageView2などがあります。私も "編集"ボタンとtapGestureアクションメソッドを持っています。 Tap Gesture RecognizerをIBの私の視点にドラッグし、それをUIImageViewsのそれぞれに添付しました。また、UIImageViewのそれぞれにtapGestureアクションメソッドを添付しました。理想的には、「編集」ボタンが押されたときにのみメソッドがアクティブになるようにします。ユーザーが「編集」をタップして削除したい画像をタップすると、UIAlertViewが表示され、削除したいと思っているかどうかが尋ねられます。ここで私が使用しているコードは次のとおりです。iOS:TapGestureRecognizer問題
- (IBAction)editButtonPressed:(id)sender {
editButton.hidden = YES;
backToGalleryButton.hidden = NO;
tapToDeleteLabel.hidden = NO;
}
- (IBAction)tapGesture:(UITapGestureRecognizer*)gesture
{
UIAlertView *deleteAlertView = [[UIAlertView alloc] initWithTitle:@"Delete"
message:@"Are you sure you want to delete this photo?"
delegate:self
cancelButtonTitle:@"No"
otherButtonTitles:@"Yes", nil];
[deleteAlertView show];
if (buttonIndex != [alertView cancelButtonIndex]) {
UIImageView *view = [self.UIImageView];
if (view) {
[self.array removeObject:view];
}
CGPoint tapLocation = [gesture locationInView: self.view];
for (UIImageView *imageView in self.view.subviews) {
if (CGRectContainsPoint(self.UIImageView.frame, tapLocation)) {
((UIImageView *)[self.view]).image =nil;
}
}
[self.user setObject:self.array forKey:@"images"];
}
}
このコードは、エラーと明らかだらけです:この行の 「宣言されていない識別子ボタンインデックスの使用」:if (buttonIndex != [alertView cancelButtonIndex])
「プロパティUIImageViewの対象には見られません私はプログラミングに非常に新しいです、と私は驚きだ((UIImageView *)[self.view]).image =nil;
この行の「UIImageView *view = [self.UIImageView];
そして、このライン上に 『期待される識別子』 PhotoViewControllerを入力私はこれまでこれを作っていました。だから、私はエラーをなくすために私のコードをどのように編集する必要があるのかを理解しようとしているだけで、9つの画像ビューの1つがタップされるといつでも使用できます。編集ボタンが最初に押されます。以前はタグを使用していましたが、うまくいきましたが、NSData経由で画像を保存するので、タグを使用できなくなりました。どんな助けも大変ありがとう!ありがとう!
ああ大丈夫です、ありがとう!そこで、私がやったことをすべて削除した後、新しいタップジェスチャ認識機能をコントロールにドラッグしました(IBのサイドバーに表示されてしまいました)。次に、タップジェスチャ認識機能を制御アイコンにドラッグしてコントロールアイコンをドラッグし、表示されたアウトレットを「代理人」にしました。私もそれに接続しました。正しい動きをしましたか?信じられないほどの初心者の質問に申し訳ありません、そして私はあなたの助けを大いに感謝します。 – John
いいえ、ボタンからコードにCtrlキーを押したままにしてもよろしいですか?入力した関数スケルトンが生成され、ボタンが押されるとその関数が呼び出されます。タップジェスチャーで同じことをしてください。 Ctrlキーを押しながらコードにドラッグすると、ユーザーが画面をタップすると呼び出される関数が呼び出されます。それが、コードが適切なUIImageViewを見つけるための場所です。 –
私は実際には、左側のサイドバーのタップジェスチャー認識アイコンからすぐ上のコントロールアイコンまでドラッグしてコントロールしました。申し訳ありませんが、私はタップジェスチャ認識ツールアイコンから実際のコードまでドラッグを制御するにはどうすればよいですか?私はビューコントローラの.mファイルにドラッグを制御する必要がありますか? – John