我創建了自己的UINavigationBar子類,以啓用高於44px的自定義背景。使用自定義UINavigationBar導致UIBarButtonItem被定位錯誤
我做到了通過重寫這兩個方法:
-(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;
}
這是結果:
現在,我的問題,因爲你可以看到的是,所有的UIBarButtonItem的(和titleView)放置在導航欄的底部。
我希望他們被固定到酒吧的頂部(當然有一些填充)。 我需要重寫什麼才能實現這個目標?
謝謝!
編輯:
這是我使用的解決方案:
-(void) layoutSubviews
{
[super layoutSubviews];
for (UIView *view in self.subviews)
{
CGRect frame = view.frame;
frame.origin.y = 5;
view.frame = frame;
}
}
是否爲空閒狀態的伎倆,仍然有push和pop的項目的一些怪異的行爲。
你是怎麼解決這個問題?請你張貼請! – luca 2012-04-17 20:05:06
@luca - 發佈的解決方案 – 2012-04-18 08:59:40
您是否曾經能夠解決push/pop問題? – lti 2012-06-26 20:42:46