App 2.0开发模式的行业看法
1162
2022-11-07
[IOS]设置NavigationBar的颜色
在开发APP时,当前为了让APP更加美观,经常会给NavigationBar设置一个颜色,如果你直接给navigationBar设置颜色,
self.navigationController.navigationBar.backgroundColor = [UIColor whiteColor]; self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
会发现根本达不到效果,呈现出来的颜色根本不是设置的颜色,这是因为系统的navigation设置的透明度的原因那怎样才能达到想要的效果呢,你需要一张图片,然后设置它的图片就OK了
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"navibar_white"] forBarMetrics:(UIBarMetricsDefault)];
*经过测试,发现IOS9以上两种方法效果一样的。
如果你说还需要一张图片太麻烦了,那你可以给UIImage增加一个类目color
@interface UIImage (Color)/** * @brief 根据颜色生成纯色图片 * * @param color 颜色 * * @return 纯色图片 */@end@implementation UIImage (Color)/** * @brief 根据颜色生成纯色图片 * * @param color 颜色 * * @return 纯色图片 */+ (UIImage *)imageWithColor:(UIColor *)color { CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); UIGraphicsBeginImageContext(rect.size); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetFillColorWithColor(context, [color CGColor]); CGContextFillRect(context, rect); UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); return image;}@end
代码就不需要图片了
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:[UIColor whiteColor]] forBarMetrics:(UIBarMetricsDefault)];
以后如果需要纯色的图片,自己生成就好了比如在我们使用button的时候,会给button设置不同状态的不同的颜色值,省去了给UI要图片的麻烦了
[self.codeButton setBackgroundImage:[UIImage imageWithColor:[UIColor whiteColor]] forState:(UIControlStateNormal)]; [self.codeButton setBackgroundImage:[UIImage imageWithColor:[UIColor whiteColor]] forState:(UIControlStateDisabled)]; [self.codeButton setBackgroundImage:[UIImage imageWithColor:[UIColor whiteColor] forState:(UIControlStateHighlighted)];
正常时候的颜色,按下去的颜色,不能按时候的颜色是不是都有了呢怎么才能让button不能按呢,只需要一句话
self.codeButton.enabled = NO;
是不是方便很多
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。