2016-06-17 7 views
1

Использование Xcode8 Beta мой симулятор сбрасывается при использовании inputAccessoryView и добавляет строку self.view.layoutIfNeeded() в getter переопределения inputAccessoryView. Он отлично работает на моих устройствах, но это одна строка заставляет симулятор врезаться каждыйXcode8 beta добавление self.view.layoutIfNeeded() в inputAccessoryView getter вызывает сбои

override var inputAccessoryView: UIView? { 
    get { 
     self.view.layoutIfNeeded() 
     return customToolbar 
    } 
} 

следующее сообщение отображается в консоли:

libc++abi.dylib: terminating with uncaught exception of type NSException 

Если я просто удалить строку: self.view. layoutIfNeeded() он отлично работает на симуляторе. Мне нужна эта строка, хотя или collectionView моментально отскакивает, когда вызывается уведомление об изменении клавиатуры inputAccessoryView.

ответ

1

Возможно, вы попадаете в новые петли макета. См изменений в ИО 10 API здесь https://developer.apple.com/library/content/releasenotes/General/RN-iOSSDK-10.0/

третьих приложений сторонних с пользовательским UIView подклассов, используя Auto Layout, которые замещают layoutSubviews и грязный макет на себя перед вызовом супер рискуют запуская петлю обратной связи макета, когда они перестроение на прошивке 10 Когда они правильно отправляются последующие вызовы layoutSubviews, они должны быть уверены, что в какой-то момент перестанут использовать макет для себя (обратите внимание, что этот вызов был пропущен в выпуске до iOS 10).