私はiPad用のグラフ電卓アプリに取り組んでいます。グラフビューでユーザーが領域をタップして、タッチしたポイントの座標を表示するテキストボックスをポップアップできるようにする機能を追加したかったのです。これからどのようにCGPointを手に入れることができますか?タップされた場所からCGPointを取得するには?
26
A
答えて
46
次の2つの方法を持っている...ここ
1.
-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:touch.view];
}
、あなたは...現在のビューからのポイントで場所を得ることができます
2.
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)];
[tapRecognizer setNumberOfTapsRequired:1];
[tapRecognizer setDelegate:self];
[self.view addGestureRecognizer:tapRecognizer];
ここでは、このコードは、perticularオブジェクトやメインビューのサブビューで何かしたいときに使用します
19
は、ユーザーではなく、彼らが着陸場所の画面から指を持ち上げたところあなたはむしろ見たい場合は、「touchesEnded」を使用することができます。この
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
// Get the specific point that was touched
CGPoint point = [touch locationInView:self.view];
NSLog(@"X location: %f", point.x);
NSLog(@"Y Location: %f",point.y);
}
を試してみてください。
3
UIGestureRecognizer
またはUITouch
オブジェクトを使用する場合は、locationInView:
メソッドを使用して、ユーザーがタッチした特定のビュー内のCGPoint
を取得できます。
6
UIGestureRecognizerをマップビューで使用する方が、サブクラス化して手作業で傍受するのではなく、おそらくもっと簡単で簡単です。
ステップ1:まず、マップビューにジェスチャー認識を追加します。
UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(tapGestureHandler:)];
tgr.delegate = self; //also add <UIGestureRecognizerDelegate> to @interface
[mapView addGestureRecognizer:tgr];
ステップ2:次に、ので、あなたのタップジェスチャー認識は、マップの(と同時に作業することができますshouldRecognizeSimultaneouslyWithGestureRecognizerを実装し、YESを返しますそうでない場合は)マップが自動的に処理し得ることはありませんピンをタップする:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer
shouldRecognizeSimultaneouslyWithGestureRecognizer
:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
ステップ3:
:最後に、ジェスチャーハンドラを実装APIが見てかなり異なっているので
0
func handleFrontTap(gestureRecognizer: UITapGestureRecognizer) {
print("tap working")
if gestureRecognizer.state == UIGestureRecognizerState.Recognized {
`print(gestureRecognizer.locationInView(gestureRecognizer.view))`
}
}
3
ちょうどスウィフト4答えにトスしたいです。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = event?.allTouches?.first {
let loc:CGPoint = touch.location(in: touch.view)
//insert your touch based code here
}
}
OR
let tapGR = UITapGestureRecognizer(target: self, action: #selector(tapped))
view.addGestureRecognizer(tapGR)
@objc func tapped(gr:UITapGestureRecognizer) {
let loc:CGPoint = gr.location(in: gr.view)
//insert your touch based code here
}
どちらの場合もloc
は、ビューに感動したポイントが含まれています。
関連する問題
- 1. ボイスオーバーが有効になっているときにカスタムビューのタップした場所からCGPointを取得するには?
- 2. iOSのGoogleマップSDKで場所のCGPointを取得するには?
- 3. レジストリからVS2017インストールされた場所を取得するには?
- 4. Googleマップアカウントから保存された場所のマーカーを取得
- 5. 私の場所が変更されたときにJSonから場所を取得
- 6. データベースからGoogleマップユーザーの場所を取得するには?
- 7. facebook apiの場所IDから国を取得するには?
- 8. Glide:キャッシュされたファイルの場所を取得する
- 9. アプリ全体で更新された場所を取得する
- 10. Q:NSConcreteValueからCGPointを取得する方法は?
- 11. eclipseからandroid-sdkの保存された場所を取得します
- 12. LaravelのAuthクラスからアップロードされたファイルの場所を取得します
- 13. Alexaスキルキット(ASK)から場所を取得
- 14. 距離でソートされたGoogle APIから近くの場所を取得
- 15. クエリでグループ化された場所で結果を取得するには
- 16. フックキーボード:キーが押された場所のプログラム名を取得するには?
- 17. 最後の場所を取得すると場所が返されません
- 18. iOSで他の場所をタップしたときにHTMLチェックボックスがクリックされる
- 19. pyQTの他の場所からドラッグしたテキストを取得するには?
- 20. タップした場所に画像を移動する - iPhone
- 21. 場所ピッカーの住所から国、都市を取得するにはどうすればよいですか?
- 22. uiwebviewでタップされたリンクのテキストを取得する
- 23. Nativescriptでタップされたリスト項目のコンテキストを取得する
- 24. CGEventタップで押された修飾キーを取得する
- 25. 参照されたローカルアセンブリの場所を取得
- 26. Googleの場所から近くの場所を取得し、結果からGoogleマップにマーカーを追加する
- 27. アプリが閉鎖されている間に場所を取得
- 28. リストから重複する値の場所を取得する
- 29. 誰かから場所を取得するelses google maps api key
- 30. Googleビジネスの場所に投稿された写真を取得する方法
これは完璧な回答です –