2015-01-18 2 views
0

можно обнаружить кнопку нажатой в UIView с помощью этого простого кодаSwift Обнаружить положение кнопки в UIView

func handlePan(recognizer:UIPanGestureRecognizer) { 
    if let buttonRecognize = recognizer.view as? UIButton { 
      let subviews = self.view.subviews as [UIView] 
        for v in subviews { 
         if let button = v as? UIButton { 
          if button.tag != -1 { 
           var p = button.superview?.convertPoint(button.center, toView: view) 
           println(p) 
       } 

    UIView.animateWithDuration(Double(slideFactor * 2), 
      delay: 0, 

      options: UIViewAnimationOptions.CurveEaseOut, 
      animations: {recognizer.view!.center = finalPoint }, 
      completion: nil) 
     }}}} 
} 

Как можно обнаружить положение кнопки в UIView?

для (0,0) из UIView = (367.666656494141,207.33332824707) для Func handlePan

Я хотел бы найти значение кнопки, чем UIView, где центр является то, что сам UIView а не значение func handlePan, где центр находится в верхнем левом углу!

P.S. Я попытался переместить let subview и т. Д. После

completion: nil 

но результат не меняется!

+0

Можете ли вы уточнить, где и когда вы хотите обнаружить эту кнопку? –

ответ

0

Вы можете преобразовать точку системы координат, что из указанного представления с помощью

convertPoint (_ точка: CGPoint, toView вид: UIView)

toView является система координат который он будет преобразован.

+0

Я попытался в этом режиме var p = button.convertPoint (button.center, toView: view) println (px), но у меня всегда есть только значение функции handlePan (например, 311), а не значение, чем UIView (должно от 0 до 311) – stack

+0

попробуйте: p = button.superview? .convertPoint (button.center, toView: view) –

+0

У меня есть мой вопрос – stack