2017-08-24 20 views
8

そこには、この程度のSO上の別の質問ですが、私はこれは私がUIView内でグループ化されているこれらの2 UIButton秒を持っているiOSの11UIBarButtonItemはiOS 11 beta 7ではクリックできません。

のベータ版に関係していると思うので、これはそれとは何の関係もありません。このUIViewはUIBarButtonItemの中に入れられ、Interface Builderを使用して全体がLeft Bar Button Itemsに設定されます。

各ボタンをクリックすると、ストーリーボードによってトリガーされたポップオーバーが表示されます。

私はXcode 8を使用して、iOS 9を実行しているiPad 3でこれをテストしています。これは素晴らしく機能します。

iOS 11 beta 7を実行しているiPad Pro 9.7でこれをテストすることにしました。私はXcode 9 beta 6を使用しています。これをiPad Proで実行すると、ナビゲーションバーのすべてのボタンが死んでいます。彼らは、クリックに応答しません。今、私は同じXcodeの9ベータ6を試すとiOS 9とiPadの3でアプリを実行し、再び、すべてが素晴らしく働く。

私はiOSの9.1用にコンパイルしています。

ボタンはiOS 9と同じように強調表示されません。

iOS 11 beta 7とバーボタンの項目に問題がありますか?

アイデアはありますか?

+0

私は同様の問題を持って、私はボタンをスワイプた場合、それは、アクション、非常に奇妙な行動を送ることがわかっています。 –

+0

私の答えを見てください。私は問題を発見した – SpaceDog

答えて

4

私は問題を発見しました!素晴らしいバグ!

これはドリルです。私はこれを行うことにより、左側のナビゲーション項目に2つのボタンが追加された:

  1. は、そのビュー内の2 UIButtonsを追加するビューを作成します。
  2. このビューを左側のナビゲーション項目に追加します。

これは、これを行うための「正しい」方法はこの

  1. ドラッグUIButtonあるiOSの11

    iOSの9のためにコンパイルされ、下記のiOS 10とで、デバイス上で動作しますが、いませんでした左のナビゲーション項目に移動します。

  2. 別のUIButtonを左のナビゲーション項目にドラッグします。

iOSではこれが可能になり、「ナビゲーションアイテム」の下の両方のボタンを管理することがわかります。

これは私が11

10

スルー9からテストしたすべてのiOSバージョンで動作します私は同じコードがios10-11にもXcodeので8つの作品を建てことがわかったが、私はカスタムとXcodeの9 UIBarButtonItemをビルドするときビューはクリックに反応しません。

は、ios 11のナビゲーションバーからフレームを処理する代わりにautolayoutを使用するため、問題が発生しているように見えます。画面上のボタンはよく見えますが、技術的にはオフスクリーンです。

私の修正は、カスタムビューに自動レイアウト制約を追加することです。

//my custom view init 
    let view = MyCustomView() 
    view.frame = CGRect(x: 0, y: 0, width: 44, height: 44) 
    let rightButtonItem = UIBarButtonItem(customView: view) 

    //constraints 
    let widthConstraint = view.widthAnchor.constraint(equalToConstant: 44) 
    let heightConstraint = view.heightAnchor.constraint(equalToConstant: 44) 

    heightConstraint.isActive = true 
    widthConstraint.isActive = true 

    //add my view to nav bar 
    self.rightBarButtonItem = rightButtonItem 

このカスタムバーのボタンが正常にクリックされた後。

+2

非常に良い!ありがとう!これはAppleが決して修正しないバグの1つです。これは私が将来人々に残したメッセージです。これはこのバグを扱うことになります。 – SpaceDog

+0

@SpaceDog私はメッセージを更新し、解決策はまだ動作しますが、バグはまだ存在します – JuicyFruit

2

LETタップ:iOSの11

にボタンを含むのUIViewのサイズをアップグレードするときに、私は同じ問題を持っていた

UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(manualAdd.dismissKeyboard)) 
tap.cancelsTouchesInView = false // this line is required for xcode 9 
view.addGestureRecognizer(tap) 
+1

問題を修正しませんでした。 – Harsh

+0

私もそれを修正しません。 –

0

は0x0のでした。

UI BuilderのUIViewの高さx幅をInterface Builderで固定した後、それが機能します。

2

私はUIBarButtonItemに、このメソッドを追加することで、この作業を得た:

[self.barBTNItem setWidth:44]; 
+0

それは意味をなさない。ありがとう。 – SpaceDog

関連する問題