UI初级之界面特别处理技巧二

内容提要:UI界面的特别处理技巧二
 
 
一、
问题说明: 修改标签管理器标签和视图控制器标题不一样
         使用标签管理器来管理导航控制器,
    //self.title = @"home”;//当前视图的title(上面标题)
     //self.navigationItem.title = @"home";
   
  // 上述方法无效,要找准层级关系
    //标签管理器的子控制器是导航管理器
          //当前视图所对应的TabBarItem的标题(下面的标题)
     self.navigationController.tabBarItem.title = @"home1";




二、视图控器继承实现风格相似
          在使用导航控制器的时候,导航控制器管理许多个子视图控制器,如果这些子控制器的页面风格是相似的,我们可以设置一个父类,使这些子控制器都继承与这个父类,如设置一个BaseViewController类,在其viewDidLoad实现如下的操作
//如下的操作使每一个子视图的背景图片都一致
- ( void )viewDidLoad {
    //子类也会这样调用,这样可以使一部分样式与父类相同
    [super  viewDidLoad ];
      UIImage  *img = [ UIImage  imageNamed : @"bj.jpg" ];
     UIGraphicsBeginImageContext(CGSizeMake(kScreenWidth, kScreenHeight));
    [img  drawInRect :[ UIScreen  mainScreen ]. bounds ];
    img =
  UIGraphicsGetImageFromCurrentImageContext ();
   
  UIGraphicsEndImageContext ();
    self.view.backgroundColor = [UIColor colorWithPatternImage:img];
}



三、设置项目全局的导航栏样式
    //注意:所有带UI_APPEARANCE_SELECTOR宏修饰的方法都可以全局设置
     // 创建导航控制器
    UINavigationController *nav = [[UINavigationController alloc]initWithRootViewController:rootVC];
     //处理图片
     UIImage  *img = [ UIImage  imageNamed : @"navbar_bg_normal.png" ];
   
  UIGraphicsBeginImageContext ( CGSizeMake ( kScreenWidth , 64));
    [img
  drawInRect : CGRectMake (0, 0,  kScreenWidth , 64)];
    img =
  UIGraphicsGetImageFromCurrentImageContext ();
     UIGraphicsEndImageContext();
     //1. 设置项目全局的导航栏的背景图片
    [[UINavigationBar appearance] setBackgroundImage:imgforBarMetrics:UIBarMetricsDefault];
    //2.设置项目全局的导航栏的字体样式,
    //也可以单独的设置字体的大小或者颜色,这样的话,没有设置的一项就会采用默认显示,所以最好还是同时设置
    [[UINavigationBar appearance]setTitleTextAttributes:@{NSFontAttributeName: [UIFontboldSystemFontOfSize:16], NSForegroundColorAttributeName: [UIColorwhiteColor]}];



四、自定义UI组件
  //这里是一个示例,自定义一个Button
#import  <UIKit/UIKit.h>
@interface  WXButton :  UIControl
{
   
  UIImageView  *_checkImg;
}

@property  ( nonatomic ,  strong )  UIImageView  *checkImg;
- ( id )initWithFrame:( CGRect )frame ImageName:( NSString  *)imgName;
@end

//实现
#import  "WXButton.h"
@implementation  WXButton
- ( id )initWithFrame:( CGRect )frame ImageName:( NSString  *)imgName
{
   
  self  = [ super  initWithFrame :frame];
   
  if  ( self ) {
        //...
        //添加UI,设置跟随的图片获取其他相关属性
         _checkImg  = [[ UIImageView  alloc ] initWithFrame : CGRectMake (frame. size . width  - 18, frame. size . height  - 18, 18, 18)];
       
  _checkImg . image  = [ UIImage  imageNamed : @"checkmark.png" ];
       
  _checkImg . hidden  =  YES ;
        [
self  addSubview : _checkImg ];
       
       
  // 设置自己的背景图片
        [
self  setBackgroundColor :[ UIColor  colorWithPatternImage :[ UIImage imageNamed :imgName]]];
       
//        [self addTarget:self action:@selector(btnClick) forControlEvents:UIControlEventTouchUpInside];   
    }
     return  self ;
}

//设置默认的点击事件
//- (void)btnClick
//{
//    checkImg.hidden = !checkImg.hidden;
//}
 
@end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值