Seit der Veröffentlichung von IOS 11.2 trifft meine App auf eine Endlosschleife, wenn sie einen Ansichtscontroller drückt, dessen Navigationscontroller eine benutzerdefinierte Höhe der Navigationsleiste hat. Hat jemand die Lösung für dieses Problem gefunden? Vielen Dank.iOS 11.2 benutzerdefinierte Navigationsleiste Endlosschleife
-(void)layoutSubviews{
[super layoutSubviews];
float height = 42.5;
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
height = 48;
}
imageView.frame = CGRectMake(0, 0, [[UIScreen mainScreen]bounds].size.width, height);
if(UI_USER_INTERFACE_IDIOM() ==UIUserInterfaceIdiomPad){
if(@available(iOS 11.0,*)){
self.frame =CGRectMake(0, 20,[[UIScreen mainScreen]bounds].size.width, 55); // this line provoke the infinite loop
for(UIView *aView in self.subviews){
if([NSStringFromClass([aView class]) isEqualToString: @"_UINavigationBarContentView"]){
aView.frame = CGRectMake(0, 10, aView.frame.size.width, aView.frame.size.height);
}
if([NSStringFromClass([aView class]) isEqualToString: @"_UIBarBackground"]){
aView.frame = CGRectMake(0, 0, aView.frame.size.width, self.frame.size.height);
}
}
}
}
}
wo haben Sie in Ihrem Code Endlosschleife gefunden? Bitte erwähnen Sie diese Codezeile. –
'self.frame = CGRectMake (0, 20, [[UIScreen mainScreen] Grenzen) .size.width, 55);' Diese Zeile provoziert die Endlosschleife –
Okay. ist diese Unterklasse von UINavigationBar und wie fügen Sie Ihre benutzerdefinierte Navigationsleiste hinzu? –