标签:des style blog color 使用 os io 数据
要点:1、在底部添加加号按钮 2、设置导航栏属性
1、weibo底部的button其中四个按钮是一样的,其中中间的加号需要另外做处理
tablebar是自己定义的 ,代码如下
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
// 删除系统自动生成的UITabBarButton
for (UIView *child in self.tabBar.subviews) {
if ([child isKindOfClass:[UIControl class]]) {
[child removeFromSuperview];
}
}
}
/**
* 初始化tabbar
*/
- (void)setupTabbar
{
IWTabBar *customTabBar = [[IWTabBar alloc] init];
customTabBar.frame = self.tabBar.bounds;
customTabBar.delegate = self;
[self.tabBar addSubview:customTabBar];
self.customTabBar = customTabBar;
}
[self.customTabBar addTabBarButtonWithItem:childVc.tabBarItem];
IWTabBar
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
if (!iOS7) { // 非iOS7下,设置tabbar的背景
self.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageWithName:@"tabbar_background"]];
}
// 添加一个加号按钮
UIButton *plusButton = [UIButton buttonWithType:UIButtonTypeCustom];
[plusButton setBackgroundImage:[UIImage imageWithName:@"tabbar_compose_button"] forState:UIControlStateNormal];
[plusButton setBackgroundImage:[UIImage imageWithName:@"tabbar_compose_button_highlighted"] forState:UIControlStateHighlighted];
[plusButton setImage:[UIImage imageWithName:@"tabbar_compose_icon_add"] forState:UIControlStateNormal];
[plusButton setImage:[UIImage imageWithName:@"tabbar_compose_icon_add_highlighted"] forState:UIControlStateHighlighted];
plusButton.bounds = CGRectMake(0, 0, plusButton.currentBackgroundImage.size.width, plusButton.currentBackgroundImage.size.height);
[self addSubview:plusButton];
self.plusButton = plusButton;
}
return self;
}当add bar items 的时候layoutSubviews就会重新算下位置,- (void)layoutSubviews
{
[super layoutSubviews];
// 调整加号按钮的位置
CGFloat h = self.frame.size.height;
CGFloat w = self.frame.size.width;
self.plusButton.center = CGPointMake(w * 0.5, h * 0.5);
// 按钮的frame数据
CGFloat buttonH = h;
CGFloat buttonW = w / self.subviews.count;
CGFloat buttonY = 0;
for (int index = 0; index<self.tabBarButtons.count; index++) {
// 1.取出按钮
IWTabBarButton *button = self.tabBarButtons[index];
// 2.设置按钮的frame
CGFloat buttonX = index * buttonW;
if (index > 1) {
buttonX += buttonW;
}
button.frame = CGRectMake(buttonX, buttonY, buttonW, buttonH);
// 3.绑定tag
button.tag = index;
}
}内容包括:导航栏的文字属性,rightItem 属性, pushViewController
思路:设置导航栏的时候不能分个设置,包装成一个类,让这个类管理所有的属性如何汇总成一个类呢
// 2.包装一个导航控制器
IWNavigationController *nav = [[IWNavigationController alloc] initWithRootViewController:childVc];
[self addChildViewController:nav];//
// IWNavigationController.m
// ItcastWeibo
//
// Created by apple on 14-5-6.
// Copyright (c) 2014年 itcast. All rights reserved.
//
#import "IWNavigationController.h"
@interface IWNavigationController ()
@end
@implementation IWNavigationController
/**
* 第一次使用这个类的时候会调用(1个类只会调用1次)
*/
+ (void)initialize
{
// 1.设置导航栏主题
[self setupNavBarTheme];
// 2.设置导航栏按钮主题
[self setupBarButtonItemTheme];
}
/**
* 设置导航栏按钮主题
*/
+ (void)setupBarButtonItemTheme
{
UIBarButtonItem *item = [UIBarButtonItem appearance];
// 设置背景
if (!iOS7) {
[item setBackgroundImage:[UIImage imageWithName:@"navigationbar_button_background"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[item setBackgroundImage:[UIImage imageWithName:@"navigationbar_button_background_pushed"] forState:UIControlStateHighlighted barMetrics:UIBarMetricsDefault];
[item setBackgroundImage:[UIImage imageWithName:@"navigationbar_button_background_disable"] forState:UIControlStateDisabled barMetrics:UIBarMetricsDefault];
}
// 设置文字属性
NSMutableDictionary *textAttrs = [NSMutableDictionary dictionary];
textAttrs[UITextAttributeTextColor] = iOS7 ? [UIColor orangeColor] : [UIColor grayColor];
textAttrs[UITextAttributeTextShadowOffset] = [NSValue valueWithUIOffset:UIOffsetZero];
textAttrs[UITextAttributeFont] = [UIFont systemFontOfSize:iOS7 ? 14 : 12];
[item setTitleTextAttributes:textAttrs forState:UIControlStateNormal];
[item setTitleTextAttributes:textAttrs forState:UIControlStateHighlighted];
}
/**
* 设置导航栏主题
*/
+ (void)setupNavBarTheme
{
// 取出appearance对象
UINavigationBar *navBar = [UINavigationBar appearance];
// 设置背景
if (!iOS7) {
[navBar setBackgroundImage:[UIImage imageWithName:@"navigationbar_background"] forBarMetrics:UIBarMetricsDefault];
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleBlackOpaque;
}
// 设置标题属性
NSMutableDictionary *textAttrs = [NSMutableDictionary dictionary];
textAttrs[UITextAttributeTextColor] = [UIColor blackColor];
textAttrs[UITextAttributeTextShadowOffset] = [NSValue valueWithUIOffset:UIOffsetZero];
textAttrs[UITextAttributeFont] = [UIFont boldSystemFontOfSize:19];
[navBar setTitleTextAttributes:textAttrs];
}
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if (self.viewControllers.count > 0) {
viewController.hidesBottomBarWhenPushed = YES;
}
[super pushViewController:viewController animated:animated];
}
@end
ios weibo 第二天 设置导航栏属性,添加加号按钮,布布扣,bubuko.com
标签:des style blog color 使用 os io 数据
原文地址:http://blog.csdn.net/codywangziham01/article/details/38708181