iOS11 UIToolBar Contentview
iOS 11 les boutons et le champ de texte ne répondent pas étant des sous-vues de UIToolBar. Comparer la hiérarchie des vues à iOS 10 nous voir il y a un _UIToolBarContentView plus de tous les sous-vue d' UIToolBar.
Par exemple, cette nouvelle mise en page de l' UIToolBar breaks slacktextviewcontroller
https://github.com/slackhq/SlackTextViewController/issues/604
Besoin d'une solution de travail dans iOS 10/11.
5 réponses
Pour résoudre le problème iOS11 (compatible avec les versions inférieures) vous avez seulement besoin
pour faire layoutSubview juste après UIToolBar a été ajouté comme sous-vue à la hiérarchie de L'interface utilisateur.
Dans ce cas _UIToolbarContentView lowers à la première sous-vue de UIToolBar, et vous pouvez
ajoutez tous vos sous-vues plus haut comme avant.
Par exemple ObjC,
UIToolbar *toolbar = [UIToolbar new];
[self addSubview: toolbar];
[toolbar layoutIfNeeded];
<here one can add all subviews needed>
Le même problème se produit avec slacktextviewcontroller
j'ai résolu ce problème dans mon cas. - Je réécrire l' layoutSubviews méthode dans la sous-classe de UIToobar et changer le userInteractionEnable_UIToolbarContentView dans les PAS de.
- (void)layoutSubviews {
[super layoutSubviews];
NSArray *subViewArray = [self subviews];
for (id view in subViewArray) {
if ([view isKindOfClass:(NSClassFromString(@"_UIToolbarContentView"))]) {
UIView *testView = view;
testView.userInteractionEnabled = NO;
}
}
}