ios UITabBarController和Block块语法

标签视图控制器 - UITabBarController
自定义UITabBarItem
自定义导航栏和标签栏背景图片
三个视图控制器的综合使用


一. 标签视图控制器  UITabBarController
UITabBarController有以下重要属性
viewControllers   显示的视图控制器
tabBar                  标签栏
delegate                协议

tabBar 是 UITabBar对象, 包含多个UITabBarItem, 每个tanBarItem对应一个viewController. tabBar高度为49

当tabBarItem超过五个时, 系统会自动增加一个更多按钮,点击更多按钮,没有在底部出现的那些按钮会以列表形式显示出来

UIAppearance
如果想通过一键设定所有导航视图控制器的颜色,类似于QQ的一键换肤操作, 可以通过UIAppearance协议来进行操作, 通过它可以对一些控件进行自定义颜色等

总结
UITabBarController是项目开发中常见的布局样式,与UINavigationController不同,它的viewController都是并列的,而UINavigationController的则是层次性的

UITabBatController,UINavigationController和UITableViewController,通常都是组合出现,这种布局方式特别常见,一定要熟练应用

UITabBarController可以嵌套UINavigationController

UINavigationController也可以嵌套UITabBatController




IOS  Block用法
在IOS中,定义 用" ^ "来表明block变量, 内容是包含在" {}"中的,并且和C语言一样,用" ; "来表示语句的结束

int multiplier = 7;

int (^myBlock)(int) = ^(int num){return num * multiplier; };

"^"声明这是一个block, "myBlock"为变量名

block返回值类型为int类型

int 为参数类型

等号前为声明  =  等号后是实现

等号后以^开始

int num 为参数 和 参数名

{实现 方法;};

//调用块语法的时候才会走
-(void)testFirstBlock
{
    //无参数无返回值类型的Block
    void (^myBlock)() = ^(){
        NSLog(@"走了");
    };
    //调用
    myBlock();
    
}


-(void)testSecondBlock
{
    //无参数有返回值类型的Block
    void(^myBlock)(NSString *) = ^(NSString * name){
        NSLog(@"name == %@",name);
    };
    
    myBlock(@"aaaa");
}


-(void)testThirdBlock
{
    //多个参数  顺序必须前后一致
    void(^myBlock)(NSString *,int) = ^(NSString * name,int age){
        NSLog(@"name === %@",name);
        NSLog(@"age == %d",age);
    };
    
    myBlock(@"aa",7);
}

-(void)testForthBlock
{
    //有参数有返回值类型的Block
    int(^myBlock)(NSString *,NSInteger) = ^(NSString * value,NSInteger num){
        
        //字符串转化成int类型
        int strValue = [value intValue];
        
        return strValue+num;
    };
    
   int a = myBlock(@"15",5);
    
    NSLog(@"a === %d",a);
}





Block注意事项

由于block所创建的变量分为两个内存区域,分别是全局区和栈区,因此在IOS中如果使用block的成员变量或者属性时,需要将其copy到堆内存中.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值