With the recent release of iOS 9, some updates to existing code may be required to compensate for any changes to the Apple API. Recently, it seems that they have done this so that collection views now automatically adjust the insertion of content when the keyboard appears. This is useful for people who do not handle this manually and do not support multiple versions of the OS. In my application, it caused a little headache. I finally found a solution using KVO to tell me when the system changes the earbuds, and I react accordingly, everything works fine, except in the case of a single edge.
If I show the keyboard and then try to return to the navigation stack using an interactive scrolling that calls beginAppearanceTransition:animated: but then cancel it and then exit the keyboard side to resign as the first responder, the system suddenly decides that it does not automatically update my inserts, and my KVO never starts to insert content, the keyboard disappears, but the insertion of the contents does not decrease, which leads to its incorrect display ... if, however, I click on the text field, causing the viaturu to show again, what if he decides to do it automatically update again.
Does anyone have any idea why he is ignoring my first rejection of the keyboard after canceling the interactive transition to update my earbuds?
EDIT
The need to return to this, as the team feels that it is too fragile and hacky, and after playing with it to find out how they handle the same case, they do not seem to have to deal with an erroneous call from nowhere. So I subclassed UICollectionView and redefined the setContentInset function just to find the calling call here

Except the stack trace is not particularly useful at the moment, does anyone have any ideas?
source share