質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

1回答

6015閲覧

UIScrollViewの上に置いたUILabelのタッチイベントを取得できません

ababab

総合スコア47

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2016/10/30 11:48

UIScrollViewの上に置いたUILabelのタグをtouchesBeganで取得したいのですが、取得できません。
UIScrollViewの範囲外のself.viewのタグは取得できました。

どのように書けば良いでしょうか?
よろしくお願い致します。

swift

1 myScrollView = UIScrollView() 2 myScrollView.frame = CGRect(x: 10, y: 90, width: 300, height: self.view.frame.size.height) 3 let myImageView = UIImageView() 4 myImageView.frame = myScrollView.frame 5 myImageView.contentMode = UIViewContentMode.scaleAspectFill 6 myScrollView.addSubview(myImageView) 7 myScrollView.backgroundColor = UIColor.gray 8 myScrollView.isUserInteractionEnabled = true 9 myScrollView.alpha = 0.3 10 myScrollView.contentSize = CGSize(width:300, height:3800) 11 12 for var i in 1...Array.count-1{ 13 14 let shopImageView = UIImageView(frame: CGRect(x: 10, y: 10+(i*100)-90, width: 80, height: 80)) 15 shopImageView.image = UIImage(named: "gosei_1.jpg") 16 shopImageView.isUserInteractionEnabled = true 17 shopImageView.tag = i 18 myScrollView.addSubview(shopImageView) 19 20 nameLabel = UILabel(frame: CGRect(x: 120, y: 10+(i*100)-90, width: 170, height: 38)) 21 nameLabel.backgroundColor = UIColor.white 22 nameLabel.numberOfLines = 0 23 nameLabel.textColor = UIColor.black 24 nameLabel.isUserInteractionEnabled = true 25 nameLabel.tag = i 26 nameLabel.text = str2[Array[i]][0] 27 nameLabel.textAlignment = NSTextAlignment.left 28 nameLabel.adjustsFontSizeToFitWidth = true 29 myScrollView.addSubview(nameLabel) 30 31 addressLabel = UILabel(frame: CGRect(x: 120, y: 50+(i*100)-90, width: 170, height: 38)) 32 addressLabel.backgroundColor = UIColor.white 33 addressLabel.numberOfLines = 0 34 addressLabel.textColor = UIColor.black 35 addressLabel.isUserInteractionEnabled = true 36 addressLabel.tag = i 37 addressLabel.text = str2[Array[i]][1] 38 addressLabel.textAlignment = NSTextAlignment.left 39 addressLabel.adjustsFontSizeToFitWidth = true 40 myScrollView.addSubview(addressLabel) 41 42 } 43 44 45override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 46 print("touchesBegan") 47 48 for touch: AnyObject in touches { 49 50 let t: UITouch = touch as! UITouch 51 52 print("\(t.view?.tag)") 53 54 if t.view?.tag == 1 { 55 NSLog("Label touched") 56 } 57 58 } 59 60} 61

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これでは?
リンク内容

投稿2016/10/30 16:18

MasahikoHirata

総合スコア3747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuzzball

2016/10/31 01:39

superviewじゃなくてnextResponderに渡す方が良さそうですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問