如何清晰高效设置UINavigationBar样式
1个回答
展开全部
实现代码
HomeViewController.m
//详细代码不一一列出
//生成UINavigationController实例
UINavigationController *nav = [UINavigationController alloc] init];}
//设置title的文字属性
NSDictionary * dict = [NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
nav.navigationBar.titleTextAttributes = dict;
//背景颜色
nav.navigationBar.barTintColor = [UIColor whiteColor];
//设置背景是否透明
nav.navigationBar.translucent = NO;
但这样写的问题是设置UIView属性的工作应该尽量不要交给Controller去实现,这样对代码阅读和维护性都增加了难度,而且重用性低。那如何分离view属性设置的代码?个人建议就是创建一个子类view,在view的初始化的时候就设置其属性。
创建两个文件BasicNavigationBar.h和BasicNavigationBar.m
BasicNavigationBar.h
#import <UIKit/UIKit.h>
@interface BasicNavigationBar : UINavigationBar
@end
BasicNavigationBar.m
#import "BasicNavigationBar.h"
@implementation BasicNavigationBar
//重写初始化view
- (id)init {
if (self = [super init]) {
[self setBasicAttributes];
}
return self;
}
/**
* @author 老区
*
* @brief 设置基础属性,设置是针对iOS 7.0或以上,7.0以下果断抛弃
*/
- (void)setBasicAttributes {
//标题属性
self.titleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor],NSForegroundColorAttributeName ,//字体颜色
[UIFont boldSystemFontOfSize:20],NSFontAttributeName //字体大小和样式
, nil];
//设置背景颜色
self.barTintColor = [UIColor colorWithRed:0.7255 green:0.1059 blue:0.1098 alpha:1.0];
//设置背景是否透明
self.translucent = NO;
/**
* 添加更多其它属性设置
*/
}
@end
HomeViewController.m
//生成UINavigationController实例
UINavigationController *nav = [UINavigationController alloc] init];}
/**
* @author 老区
*
* 这里是关键,设置新的NavigationBar
*/
[nav setValue:[BasicNavigationBar new] forKeyPath:@"navigationBar"];
文/LeoAu(简书作者)
原文链接:http://www.jianshu.com/p/435d8b09d75a
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
HomeViewController.m
//详细代码不一一列出
//生成UINavigationController实例
UINavigationController *nav = [UINavigationController alloc] init];}
//设置title的文字属性
NSDictionary * dict = [NSDictionary dictionaryWithObject:[UIColor whiteColor] forKey:NSForegroundColorAttributeName];
nav.navigationBar.titleTextAttributes = dict;
//背景颜色
nav.navigationBar.barTintColor = [UIColor whiteColor];
//设置背景是否透明
nav.navigationBar.translucent = NO;
但这样写的问题是设置UIView属性的工作应该尽量不要交给Controller去实现,这样对代码阅读和维护性都增加了难度,而且重用性低。那如何分离view属性设置的代码?个人建议就是创建一个子类view,在view的初始化的时候就设置其属性。
创建两个文件BasicNavigationBar.h和BasicNavigationBar.m
BasicNavigationBar.h
#import <UIKit/UIKit.h>
@interface BasicNavigationBar : UINavigationBar
@end
BasicNavigationBar.m
#import "BasicNavigationBar.h"
@implementation BasicNavigationBar
//重写初始化view
- (id)init {
if (self = [super init]) {
[self setBasicAttributes];
}
return self;
}
/**
* @author 老区
*
* @brief 设置基础属性,设置是针对iOS 7.0或以上,7.0以下果断抛弃
*/
- (void)setBasicAttributes {
//标题属性
self.titleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor],NSForegroundColorAttributeName ,//字体颜色
[UIFont boldSystemFontOfSize:20],NSFontAttributeName //字体大小和样式
, nil];
//设置背景颜色
self.barTintColor = [UIColor colorWithRed:0.7255 green:0.1059 blue:0.1098 alpha:1.0];
//设置背景是否透明
self.translucent = NO;
/**
* 添加更多其它属性设置
*/
}
@end
HomeViewController.m
//生成UINavigationController实例
UINavigationController *nav = [UINavigationController alloc] init];}
/**
* @author 老区
*
* 这里是关键,设置新的NavigationBar
*/
[nav setValue:[BasicNavigationBar new] forKeyPath:@"navigationBar"];
文/LeoAu(简书作者)
原文链接:http://www.jianshu.com/p/435d8b09d75a
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
ZESTRON
2024-09-04 广告
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸...
点击进入详情页
本回答由ZESTRON提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询