今、UIScrollView内にfor文でUIViewを生成して、何個目のView(今回で言うとcontentView)をタップしたのか取得したいのですが、できません。
ご教授お願いいたします。
現在のコードは以下の通りです。
Swift
1struct Views { 2 var view: UIView 3 var name: String 4} 5 6class ScrollView: UIScrollView { 7 8 let costomView = UIView() 9 var views:[Views] = [Views(view: UIView(),name: "焼肉"),Views(view: UIView(),name: "たこ焼き"), Views(view: UIView(),name: "焼き鳥")] 10 11 override func layoutSubviews() { 12 super.layoutSubviews() 13 14 self.showsVerticalScrollIndicator = false 15 self.showsHorizontalScrollIndicator = false 16 17 var iconImageX: CGFloat = width/16 18 let x = width/16 19 20 for myview in views { 21 var contentView = UIView() 22 contentView = myview.view as! UIView 23 contentView.frame = CGRect(x: iconImageX, y: width/32, width: contentViewWidth, height: contentViewHeight) 24 self.addSubview(contentView) 25 iconImageX = contentViewWidth + iconImageX + x 26 //このビューを選択可にしてます 27 myview.view.isUserInteractionEnabled = true 28 myview.view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(tapContentView(sender:)))) 29 myview.view.layer.shadowOffset = CGSize(width: 0, height: 2) 30 myview.view.layer.shadowColor = UIColor.black.cgColor 31 myview.view.layer.shadowOpacity = 0.2 32 myview.view.layer.shadowRadius = width/32 33 myview.view.backgroundColor = .white 34 contentView.nameLabel.text = view.name 35 } 36 self.contentSize = CGSize(width: iconImageX, height: contentViewHeight) 37 } 38 39 @objc func tapContentView(sender: UITapGestureRecognizer) { 40 //ここでどのViewをタップしたか、 また、Viewsにあるnameをプリントしたい 41 42 } 43 44} 45 46 47
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/12 05:48 編集
2020/05/12 06:18
2020/05/12 06:25