2017-09-22 8 views
0

はその後、私のviewDidLoad内で私が持っている:iOSの11 inputAccessoryView壊れ

let seperator = UIView(frame: CGRect(x:0 , y: 0, width: ScreenSize.width(), height: 1)) 
    seperator.backgroundColor = UIColor.lightBackground 
    self.inputFieldView.addSubview(seperator) 
    self.inputFieldView.isTranslucent = false 
    self.inputFieldView.setShadowImage(UIImage(), forToolbarPosition: .any) 
    self.inputFieldView.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .default) 
    self.inputFieldView.removeFromSuperview() 

これは、IOSバージョンのために素晴らしい仕事しました「送信」ボタンが付いたテキストビューです。それは画面の一番下にあり、押されるとキーボードが上に来るように最初のレスポンダーになり、キーボード自体が正しく位置付けられます。

ios 11では、下部にあるときはクリックすることもできないため、入力できません。

答えて

0

解決済みUIToolbarちょうどiOS版では正しく動作していない11

はUIViewのにそれを変更し、

self.inputFieldView.isTranslucent = false 
self.inputFieldView.setShadowImage(UIImage(), forToolbarPosition: .any) 
self.inputFieldView.setBackgroundImage(UIImage(), forToolbarPosition: .any, barMetrics: .default) 

は作業それを得た取り外しのように見えます(と同様XIBでUIToolbarからのUIViewにそれを変更しました。)

+0

完全なコードを表示できますか。私はそれがまったく現れるように苦労しています。 – arvidurs

+0

あなたの問題を再現しようとしているのですか、自分の問題を解決しようとしていますか? @arvidurs – daredevil1234

4

これはiOS 11の既知のバグです。ツールバーの内部ビューが正しく設定されていないため、UIToolbarのサブビューではタッチイベントが発生しません。

現時点での回避策は、サブビューを追加する直前にtoolBar.layoutIfNeeded()を呼び出すことです。あなたのケースでは

inputFieldView.layoutIfNeeded() 

がうまくいけば、これは次のメジャーバージョンに固定されます。

関連する問題