武汉ios培训
达内武汉中心

15827352908

热门课程

IOS开发的一些基础框架

  • 时间:2016-05-10 14:57
  • 发布:湖北ios培训
  • 来源:达内新闻

    武汉达内IOS培训专家介绍的IOS基础框架主要包括了UI Tab Bar Controller,UI Navigation Controller和UI Bar Button Item类的扩展。下面是详细代码:

一.继承UITabBarController创建的NPTabBarController

1.设置tabbar上面的字体样式

#pragma mark - 设置tabbar上面的字 setTitleTextAttributes 
- (void)setTabBarTitleAttributesStyle 
    NSMutableDictionary *attrs = [NSMutableDictionary dictionary]; 
    //通常字体大小 
    attrs[NSFontAttributeName] = [UIFont systemFontOfSize:16]; 
    //通常字体颜色 
    attrs[NSForegroundColorAttributeName] = [UIColor lightGrayColor]; 
 
    NSMutableDictionary *selectAttrs = [NSMutableDictionary dictionary]; 
    //选中字体大小 
    selectAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:16]; 
    //选中字体颜色 
    selectAttrs[NSForegroundColorAttributeName] = [UIColor darkGrayColor]; 
 
    //UI_APPEARANCE_SELECTOR 外观 
    UITabBarItem *item = [UITabBarItem appearance]; 
    //tabbar通常字体样式 
    [item setTitleTextAttributes:attrs forState:UIControlStateNormal]; 
    //tabbar选中字体样式 
    [item setTitleTextAttributes:selectAttrs forState:UIControlStateSelected]; 

2.导航子视图封装

#pragma mark - 导航子视图封装 
- (void)setChildVC:(UIViewController *)ChildVC title:(NSString *)title image:(NSString *)image selectImgage:(NSString *)selectImage { 
 
    //注意视图层级关系,最上边时UINavigationController,创建一个视图即给一个UINavigationController 
    NPNavigationController *nav = [[NPNavigationController alloc] initWithRootViewController:ChildVC]; 
    //子视图显示在UITabbarController上显示的tabbar标题 
    nav.tabBarItem.title = title; 
    //子视图显示在UITabbarController上未选中tabbar的图片 
    nav.tabBarItem.image = [UIImage imageNamed:image]; 
    //子视图显示在UITabbarController上选中tabbar的图片 
    nav.tabBarItem.selectedImage = [UIImage imageNamed:selectImage]; 
    //子视图背景颜色 
    nav.view.backgroundColor = [UIColor grayColor]; 
    //注意标题显示是子视图的标题,非UINavigationController 
    ChildVC.navigationItem.title = title; 
    //添加子视图 
    [self addChildViewController:nav]; 
 

二.继承UINavigationController创建NPNavigationController

1.重写-(void)pushVewController:(UIViewConntroller*)viewCOntroller animated:(Bool)animated方法 

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated 
 
   //判断self.childViewControllers是不是拿到所有子控制器,self.childViewControllers.count为0时,只有子控制器,干掉返回按钮 
   if (self.childViewControllers.count > 0) { 
       //自定义返回按钮 
       UIButton *returnBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
       //设置title:返回 
       [returnBtn setTitle:@"返回" forState:UIControlStateNormal]; 
       //正常下image 
       [returnBtn setImage:[UIImage imageNamed:@"black"] forState:UIControlStateNormal]; 
       //高亮下image 
       [returnBtn setImage:[UIImage imageNamed:@"grat"] forState:UIControlStateHighlighted]; 
       //正常下title颜色 
       [returnBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
       //高亮下title颜色 
       [returnBtn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateHighlighted]; 
       //设置按钮位置大小,注意这里位置无效果 
       [returnBtn setFrame:CGRectMake(0, 0, 70, 20)]; 
       //按钮内部对齐 
       [returnBtn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft]; 
       //设置图片内部位置 
       [returnBtn setContentEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; 
       //添加点击事件 
       [returnBtn addTarget:self action:@selector(returnBtnClick) forControlEvents:UIControlEventTouchUpInside]; 
       //当视图推送时隐藏tabbar 
       viewController.hidesBottomBarWhenPushed = YES; 
       //自定义push视图的leftBarButtonItem 
       viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:returnBtn]; 
   } 
   //子控制器通过这个方法推送视图 
   [super pushViewController:viewController animated:animated]; 

三.添加UIBarButtonItem的类扩展UIBarButtonItem+NPBarbutton,创建UIbarbuttonItem类方法

1.UIbarbuttonItem类方法

/** 
 *创建一个UIBarbuttonItem 类方法,这个方法是类方法创建一个按钮,传入的参数:image正常显示的图片,hightImage高亮情况下显示的图片,target用的对象,action点击的行为。 
 */ 
+ (instancetype)itemWithImage:(NSString *)image hightImage:(NSString *)hightImage target:(id)target action:(SEL)action 
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [btn setBackgroundImage:[UIImage imageNamed:image] forState:UIControlStateNormal]; 
    [btn setBackgroundImage:[UIImage imageNamed:hightImage] forState:UIControlStateNormal]; 
    //btnsize 是北京图片的大小 
    CGSize btnsize = btn.currentBackgroundImage.size; 
    //设置btn的frame 
    [btn setFrame:CGRectMake(0, 0, btnsize.width, btnsize.height)]; 
    [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; 
    return [[self alloc] initWithCustomView:btn]; 
}
上一篇:新iPad Pro单核跑分远超iPad Air 2
下一篇:iPhone提速小窍门,拿走不谢!

达内iOS班学员就业喜人,薪资达12000

达内ios培训专家解码哪儿买iPhone SE便宜

如何通过iOS学习获得价值

Android VS iOS竞争的输家?

选择城市和中心
贵州省

广西省

海南省