簡體   English   中英

UINavigationBar顏色更改和陰影去除而無需子類化?

[英]UINavigationBar Color Change and Shadow Removal Without Subclassing?

我想將UINavigationBar的顏色更改為我選擇的純色。 在IB中,我為Background和Tint屬性添加了純色。 但是,酒吧下面有一個陰影。 我如何在不繼承UINavigationBar子類的情況下將其刪除? 如果不是,那該如何子類化呢?

我最終將子類繼承為UINavigationBar,如下所示:

#import <UIKit/UIKit.h>

@interface MyNavigationBar : UINavigationBar <UINavigationBarDelegate> {

}

@end

在.M文件中,我改寫了這個

- (void)drawRect:(CGRect)rect {
 UIColor * color = [UIColor colorWithRed:255/255.0f green:255/255.0f blue:255/255.0f alpha:1.0f];
 CGContextRef context = UIGraphicsGetCurrentContext();
 CGContextSetFillColor(context, CGColorGetComponents( [color CGColor]));
 CGContextFillRect(context, rect);
}  

注意:由於某些原因,我無法使用[UIColor whiteColor]-默認將其設置為黑色,因此最終使用colorWithRed:green:blue:代替。

對我來說效果很好。

您可以將UINavigationBar的shadowImage設置為[[UIImage alloc] init]以刪除陰影。 不過,這僅適用於iOS 5.0以上版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM