2016-11-23 12 views
0

私はいくつかのポップオーバーを表示する必要があり、そのためには右のナビゲーションバーボタンの位置が必要です。現在、私はUINavigationBarアイテムの中心座標を見つける方法

x = self.view.frame.width - 30 
y = self.view.frame.origin.y + 60 

を使用しかし、私は風景の中にiPadの画面がview.frame.origin.yが同じような状況では、iPhoneへのビット差分で見るので、それは、良い方法ではないと思います。

+0

使用このコードself.yourView.centerを=自己.view.center; – Sommm

答えて

0

あなたはこの

if let rightBarButton = self.navigationItem.rightBarButtonItem { 
    if rightBarButton.valueForKey("view") != nil { 
      // here you can access the frame like this buttonView.frame 
    } 
} 
0

多分これはあなたのスーパービューに変換し、正しい位置を与えることができ、Rajatの答えから更新のようにそれを得ることができます。

if let rightBarButton = self.navigationItem.rightBarButtonItem { 
     if let buttonView = rightBarButton.valueForKey("view") { 
      let frame = self.navigationController?.view.convertRect(buttonView.frame, toView: self.view) 
      print("frame \(frame)") //(330.5, 6.0, 40.0, 30.0) 
     } 
} 
+0

'UIBarButtonItem'はメンバー 'view'を持っていません – Vahid

+0

これはスイフト2です。おそらくそれはスイフト3で削除されました.Rajatの回答と組み合わせてフレームを取得し、これを使用することができます – Tj3n

+0

私はスイフト2でも作業しています;) – Vahid

関連する問題