您好,我想为我添加这种阴影我该NAvigationBar
怎么做.
这就是我尝试添加阴影的方式.
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault]; self.navigationController.navigationBar.shadowImage=[UIImage new]; self.navigationController.navigationBar.translucent=YES; self.navigationController.navigationBar.topItem.titleView.tintColor=[UIColor whiteColor]; self.navigationController.navigationBar.titleTextAttributes=[NSDictionary dictionaryWithObject:[UIFont fontWithName:@"HelveticaNeue" size:15.0f] forKey:NSFontAttributeName]; self.navigationController.navigationBar.topItem.title=strNavigtionTitle; self.navigationController.navigationBar.titleTextAttributes = [NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName]; self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"backarrow"] style:UIBarButtonItemStylePlain target:self action:@selector(revealToggle :)]; [self.navigationController navigationBar].tintColor = [UIColor whiteColor]; [self.navigationController navigationBar].layer.shadowColor=[UIColor colorWithRed:53.0/255.0 green:108.0/255.0 blue:130.0/255.0 alpha:1.0f].CGColor; [self.navigationController navigationBar].layer.shadowOffset=CGSizeMake(0, 20); [self.navigationController navigationBar].layer.shadowOpacity=0.8; [self.navigationController navigationBar].layer.shadowRadius=5.5;
但这只会为箭头和我的Apply Leave标题添加阴影.但是我想添加一个像这个图像中的阴影.它应该在NavigationBar
和我的主要之间UIView
我该怎么做?请帮我.谢谢
在这里,您需要导入QuartzCore框架.
self.navigationController.navigationBar.layer.borderColor = [[UIColor whiteColor] CGColor]; self.navigationController.navigationBar.layer.borderWidth=2;// set border you can see the shadow self.navigationController.navigationBar.layer.shadowColor = [[UIColor blackColor] CGColor]; self.navigationController.navigationBar.layer.shadowOffset = CGSizeMake(1.0f, 1.0f); self.navigationController.navigationBar.layer.shadowRadius = 3.0f; self.navigationController.navigationBar.layer.shadowOpacity = 1.0f; self.navigationController.navigationBar.layer.masksToBounds=NO;
你必须要做的另一件事
set self.layer.masksToBounds = NO;
此属性的默认值为YES,这意味着即使渲染阴影,它也不会在视图边界之外渲染,这实际上意味着您根本看不到它.
如果您以任何方式为此视图设置动画,则还应添加以下行:
self.layer.shouldRasterize = YES;
self.navigationController.navigationBar.layer.shadowColor = [[UIColor blackColor] CGColor]; self.navigationController.navigationBar.layer.shadowOffset = CGSizeMake(2.0f, 2.0f); self.navigationController.navigationBar.layer.shadowRadius = 4.0f; self.navigationController.navigationBar.layer.shadowOpacity = 1.0f;