Прежде всего, спасибо за то, что пришли сюда и помогли решить мою проблему. Спасибо!
В iOS11 beta6, sizeThatFits:
, похоже, не работает в UINavigationBar. Я заметил, что структура UINavigationBar изменилась с помощью Reveal my app.
Я попытался изо всех сил изменить собственную высоту навигационной панели. Но это всегда должно быть 44
, и оно работает до iOS11.
- (CGSize)sizeThatFits:(CGSize)size {
CGSize newSize = CGSizeMake(self.frame.size.width, 64);
return newSize;
}
Как ни странно, я просто регистрирую его фрейм в методе didMoveToSuperview
, его высота равна 64, но я действительно вижу, что это 44 в Reveal и app.
Я понятия не имею об этом... Помогите мне, пожалуйста.. Спасибо.
Update:
Я обнаружил, что о моей настраиваемой панели навигации LayoutConstraints входит в консоль следующим образом:
"<NSAutoresizingMaskLayoutConstraint:0x604000495ae0 FDCustomNavigationBar:0x7fe2f01399d0.(null) == 42>",
"<NSAutoresizingMaskLayoutConstraint:0x604000495b30 FDCustomNavigationBar:0x7fe2f01399d0.height == 44>"`
Я даже не использую автомат в моей навигационной панели. Что с ним не так?
Обновление 8/28:
Я установил свой настраиваемый фрейм подкадров в панели навигации -
layoutSubviews
.
- (void)layoutSubviews {
[super layoutSubviews];
self.frame = CGRectMake(0, 0, CGRectGetWidth(self.frame), 64);
for (UIView *view in self.subviews) {
if([NSStringFromClass([view class]) containsString:@"Background"]) {
view.frame = self.bounds;
} else if ([NSStringFromClass([view class]) containsString:@"ContentView"]) {
CGRect frame = view.frame;
frame.origin.y = 20;
frame.size.height = self.bounds.size.height - frame.origin.y;
view.frame = frame;
}
}
}
но панель навигации будет отображать вид контроллера. Как я могу это исправить?