Я создал свой собственный подкласс UINavigationBar, чтобы включить пользовательский фон, который выше 44pxs.
Я сделал это, переопределив эти два метода:
-(void) drawRect:(CGRect)rect
{
[self.backgroundImage drawInRect:CGRectMake(0, 0, self.backgroundImage.size.width, self.backgroundImage.size.height)];
}
- (CGSize)sizeThatFits:(CGSize)size
{
CGRect frame = [UIScreen mainScreen].applicationFrame;
CGSize newSize = CGSizeMake(frame.size.width , self.backgroundImage.size.height);
return newSize;
}
И вот результат:
![Custom bar with custom height](https://i.stack.imgur.com/A33HZ.png)
Теперь моя проблема, как вы можете видеть, заключается в том, что все элементы UIBarButtonItem (и titleView) расположены внизу панели навигации.
Я бы хотел, чтобы они были прикреплены к верхней части бара (с некоторыми дополнениями, конечно).
Что мне нужно переопределить, чтобы добиться этого?
Спасибо!
EDIT:
Это решение, которое я использовал:
-(void) layoutSubviews
{
[super layoutSubviews];
for (UIView *view in self.subviews)
{
CGRect frame = view.frame;
frame.origin.y = 5;
view.frame = frame;
}
}
Выполняет трюк для состояния бездействия, все еще имеет странное поведение для элементов push и pop.