码迷,mamicode.com
首页 > 其他好文 > 详细

02---按钮的设置 控制器拥有导航栏包装一层导航控制器 添加子控制器 UIBarButtonItem导航按钮 设置导航栏UINavigationBar主题 设置状态栏样式

时间:2014-07-11 23:46:09      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   width   cti   for   

一、按钮的设置

1.设置背景图片

[btn setBackgroundImage:image forState:UIControlStateNormal];

2.内部UIImageView

1> 设置内部UIImageView的图片

[btn setImage:image forState:UIControlStateNormal];
// 不能写成btn.imageView.image = image;

2> 调整内部图片的内容模式

self.imageView.contentMode = UIViewContentModeCenter;

3> 调整内部ImageView的frame 

重写 - (CGRect)imageRectForContentRect:(CGRect)contentRect方法

#pragma mark - 内容区域里显示的图片区域位置
- (CGRect)imageRectForContentRect:(CGRect)contentRect
{
    CGFloat x = 10;
    CGFloat y = 0;
    CGFloat width = contentRect.size.width - 2 * x;
    CGFloat height = contentRect.size.height;
    return CGRectMake(x, y, width, height);
}

3.内部UILabel

1> 设置内部UILabel的文字

[btn setTitle:@"主页" forState:UIControlStateNormal];
// 不能写成btn.titleLabel.text = @"主页";

2> 文字居中

self.titleLabel.textAlignment = NSTextAlignmentCenter;

3> 文字大小

self.titleLabel.font = [UIFont systemFontOfSize:12];

4> 调整内部UILabel的frame

重写 - (CGRect)titleRectForContentRect:(CGRect)contentRect方法

#pragma mark - 内容区域里显示的title区域位置
- (CGRect)titleRectForContentRect:(CGRect)contentRect
{
    CGFloat x = 10;
    CGFloat y = 0;
    CGFloat width = contentRect.size.width - 2 * x;
    CGFloat height = contentRect.size.height;
    return CGRectMake(x, y, width, height);
}

4.覆盖父类在highlighted时的所有操作

- (void)setHighlighted:(BOOL)highlighted { };

 


二、让一个控制器拥有导航栏的最快方法:包装一层导航控制器 

 

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:controller];  // controller 为UIViewController 的一个实例

 


三、添加子控制器

- (void)addChildViewController:

[self addChildViewController:nav];

会将子控制器添加到childViewControllers,并且子控制器是有顺序的

* 目的就是持有子控制器,不让子控制器销毁,保证主控制器在,子控制器就在

 


 

四、UIBarButtonItem导航按钮

1> 创建一个带有文字的item

[[UIBarButtonItem alloc] initWithTitle:@"设置" style:UIBarButtonItemStyleBordered target:nil action:nil];

2> 创建一个包装了自定义View的item

- (id)initWithCustomView:(UIView *)customView

 

3> 设置导航按钮UIBarButtonItem主题

 

// 1.修改所有UIBarButtonItem的外观
UIBarButtonItem *barItem = [UIBarButtonItem appearance];

// 2.修改item的背景图片
[barItem setBackgroundImage:image1 forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[barItem setBackgroundImage:image2 forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];

// 3.修改item上面的文字样式
NSDictionary *dict = @{
    UITextAttributeTextColor : [UIColor darkGrayColor],
    UITextAttributeTextShadowOffset : [NSValue valueWithUIOffset:UIOffsetZero]
};
[barItem setTitleTextAttributes:dict forState:UIControlStateNormal];
[barItem setTitleTextAttributes:dict forState:UIControlStateHighlighted];

 

 

 


 

五、设置导航栏UINavigationBar主题

// 1.appearance方法返回一个导航栏的外观对象 修改了这个外观对象,相当于修改了整个项目中的外观
UINavigationBar *bar = [UINavigationBar appearance];

// 2.设置导航栏的背景图片
[bar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];

// 3.设置导航栏文字的主题
[bar setTitleTextAttributes:@{
  UITextAttributeTextColor : [UIColor blackColor],
  UITextAttributeTextShadowOffset : [NSValue valueWithUIOffset:UIOffsetZero]
 }];

 


六、设置状态栏样式

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;

 

 

02---按钮的设置 控制器拥有导航栏包装一层导航控制器 添加子控制器 UIBarButtonItem导航按钮 设置导航栏UINavigationBar主题 设置状态栏样式,布布扣,bubuko.com

02---按钮的设置 控制器拥有导航栏包装一层导航控制器 添加子控制器 UIBarButtonItem导航按钮 设置导航栏UINavigationBar主题 设置状态栏样式

标签:style   blog   color   width   cti   for   

原文地址:http://www.cnblogs.com/lszwhb/p/3832931.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!