[英]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.