私は UIImageView (実行時にリモート サーバーから読み込まれた画像) を持っています。この画像をクリックして特定の URL (www.google.com など) を開きたいと思います。ボタンをクリックしてこれを行いましたが、imageViewでそれを行う方法がわかりません。提案やサンプルコードをいただければ幸いです。
ありがとう!!
私は UIImageView (実行時にリモート サーバーから読み込まれた画像) を持っています。この画像をクリックして特定の URL (www.google.com など) を開きたいと思います。ボタンをクリックしてこれを行いましたが、imageViewでそれを行う方法がわかりません。提案やサンプルコードをいただければ幸いです。
ありがとう!!
必要なのはUIGestureRecognizerです
UITapGestureRecognizer* recognizer;
recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(openLink)];
self.imageView.userInteractionEnabled = YES;
[self.imageView addGestureRecognizer:recognizer];
次に、メソッドを実装openLink
してURLを開きます。
Interface Builder(またはストーリーボード)で、UIImageViewを選択します。Control-drag
画像からクラスのヘッダーファイルまで。「アクション」を選択し、必要に応じて名前を付けます。これは次のようなものを追加します
- (IBAction)loadURL:(id)sender;
あなたのヘッダーで、そして
- (IBAction)loadURL:(id)sender {
}
.mファイル内。この関数に必要なコードを挿入すれば、準備は整っていると思います。
うまくいったかどうか教えてください。
編集:おっと、私が少し速すぎたようです。UIImageViewにアクションを追加できないため、これは機能しません。もうすぐ編集します。
編集#2:
さて、最初に、画像ビューがxibまたはストーリーボードで「ユーザーインタラクションが有効」になっていることを確認してください。次に、ヘッダーファイルでUIImageViewをcontrolキーを押しながらドラッグして、画像のアウトレットを追加します。次に、UIResponderメソッドtouchesBegan、touchesMoved、touchesEnded(など)を使用して、画像ビューのタッチを検出します。これを.mファイルに追加します。
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
if ([touch view] == yourImageView)
{
NSLog(@"Touched !");
}
}