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;
}
}
}