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

本文介绍了UI界面设计中的一些特别处理技巧,包括解决标签管理器标签与视图控制器标题不一致的问题、视图控制器继承实现风格相似、设置项目全局的导航栏样式及自定义UI组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内容提要: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:[UIImageimageNamed: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、付费专栏及课程。

余额充值