有几个关于如何向UINavigation栏添加阴影的教程,但是有什么方法最适合在整个阴影应用程序中添加,而不是在单个实例中?添加UINavigationBar Shadow Application Wide?
或者是我的唯一选择,只需在应用程序的每个视图中都有一个子分类的NAB栏?认为可能比这样做更快,更简单?
谢谢。
有几个关于如何向UINavigation栏添加阴影的教程,但是有什么方法最适合在整个阴影应用程序中添加,而不是在单个实例中?添加UINavigationBar Shadow Application Wide?
或者是我的唯一选择,只需在应用程序的每个视图中都有一个子分类的NAB栏?认为可能比这样做更快,更简单?
谢谢。
创建的UINavigationBar
称为UINavigationBar+dropshadow.m
一个类别,并把这个文件
#import <QuartzCore/QuartzCore.h>
@interface UINavigationBar (dropshadow)
-(void) applyDefaultStyle;
@end
@implementation UINavigationBar (dropshadow)
-(void)willMoveToWindow:(UIWindow *)newWindow{
[super willMoveToWindow:newWindow];
[self applyDefaultStyle];
}
- (void)applyDefaultStyle {
// add the drop shadow
self.layer.shadowColor = [[UIColor blackColor] CGColor];
self.layer.shadowOffset = CGSizeMake(0.0, 3.0);
self.layer.shadowOpacity = 0.25;
self.layer.shouldRasterize = YES;
}
@end
中如果你使用iOS6的工作,你可以使用外观代理来做到这一点。
EDIT 1固定所需IOS版本(被误iOS5的先前)
编辑2 见本SO问题:Appearance proxy - setShadowImage alternative for iOS 5?为一个代码段
一个代码示例会很棒...我找不到一种方法来使用UIAppearance代理向导航栏中添加阴影... – 2012-12-22 23:16:07
对不起,我编辑了另一个SO问题,提供了一个代码片段到我的帖子。 另外,我刚刚意识到我已将它切换起来,您需要使用iOS6才能使用阴影,而不是iOS5。 现在修复,感谢您的反馈。 – JiaYow 2012-12-23 02:43:28
self.clipsToBounds = NO;需要但工作得很好,谢谢! – 2012-03-29 23:51:59
如何解决类别中的(自动)旋转问题? – DrMickeyLauer 2012-07-10 15:10:21