2013-10-22 20 views
1

我有一個UINavigationBar的子類。它的barPositionUIBarPositionTopAttached。 比我覆蓋-(void)drawRect:(CGRect)rect在我的子類。作爲參數的rect始終具有44像素的高度,並且我只能在該矩形內繪製。所以,我無法通過狀態欄執行繪圖,並且它具有默認外觀。如果我對-drawRect進行評論,則看起來與預期的相同,導航欄和狀態欄看起來整體上具有64像素高度。有沒有辦法通過在UINavigationBar的子類中覆蓋-drawRect:來實現這種效果?在自定義UINavigationBar中繪製,附在頂部

回答

0

我有一個自定義的UINavigationBAr與背景圖像的問題,當我在drawRect中添加圖像時,它不會出現在iOS 7上的半透明狀態欄下。

移動背景圖片到ViewControllers viewDidLoad方法之後,背景圖片,然後在狀態欄下出現

-(void)viewDidLoad 
{ 
if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) 
{ 
    UIImage *image = [UIImage imageNamed:@"nav-bg-ipad.png"]; 
    [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; 
}else{ 
    UIImage *image = [UIImage imageNamed:@"nav-bg-iphone.png"]; 
    [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; 
} 
// do your other stuff now … 

希望這有助於

+0

是的,看起來像它使用重載-drawRect是不可能的。我發現的另一種可能性是覆蓋-layoutSubview方法。 – Anastasia