回答編集履歴

4 修正

_Kentarou

_Kentarou score 8241

2016/04/11 22:15  投稿

そもそものやりたいことですがボタンの位置をボタンが配置してあるUIViewControllerで取得したいということですか?
それでしたら以下が参考になるかもしれません。
[ swift Button タップ スワイプ](https://teratail.com/questions/31296)
[ swift Button タップ スワイプ](https://teratail.com/questions/31296)
推測ですが、コードを書いてみました。
ボタンをサブクラス化してそれをTravelSelectionというUIViewControllerに乗せました。
タップでボタンの座標が表示されます。
```swift
import UIKit
class TravelSelection: UIViewController {
   
   let button = CustomButton(type: .Custom)
   
   override func viewDidLoad() {
       super.viewDidLoad()
       
       // ボタンを生成
       button.frame = CGRectMake(100, 100, 200, 100)
       button.setTitle("Button", forState: .Normal)
       button.setTitleColor(UIColor.blueColor(), forState: .Normal)
       button.backgroundColor = UIColor.yellowColor()
       button.addTarget(self, action: #selector(TravelSelection.buttonPressed(_:)), forControlEvents: .TouchUpInside)
       button.userInteractionEnabled = true
       view.addSubview(button)
   }
   
   // ボタン押下時の処理
   func buttonPressed(sender: UIButton) {
       print("Button Pressed!")
   }
   
   override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
       for touch: AnyObject in touches {
           // 座標取得
           let point = touch.locationInView(self.view)
           print(point)
       }
   }
}
// CustomButton Class
class CustomButton: UIButton {
   
   override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
       super.touchesBegan(touches, withEvent: event)
       self.superview!.touchesBegan(touches, withEvent: event)
   }
}
```
3 修正

_Kentarou

_Kentarou score 8241

2016/04/11 21:48  投稿

そもそものやりたいことですがボタンの位置をボタンが配置してあるUIViewControllerで取得したいということですか?
[ swift Button タップ スワイプ](https://teratail.com/questions/31296)
が参考になるかもしれません。
それでしたら以下が参考になるかもしれません。
[ swift Button タップ スワイプ](https://teratail.com/questions/31296)
2 修正

_Kentarou

_Kentarou score 8241

2016/04/11 21:48  投稿

TravelSelectionのところを「self」に変えてみてください。  
 
そもそものやりたいことですがボタンの位置をボタンが配置してあるUIViewControllerで取得したいということですか?
```swift
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
   for touch: AnyObject in touches {
       let point = touch.locationInView(self.view)
       print(point)
   }
}
```
[ swift Button タップ スワイプ](https://teratail.com/questions/31296)
が参考になるかもしれません。
1 修正

_Kentarou

_Kentarou score 8241

2016/04/11 21:42  投稿

TravelSelectionのところを「self」に変えてみてください。
 
そもそものやりたいことですがボタンの位置をボタンが配置してあるUIViewControllerで取得したいということですか?  
```swift
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
   for touch: AnyObject in touches {
       let point = touch.locationInView(self.view)
       print(point)
   }
}
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る