ios学习记录 day43 UI19 标签视图 和 block用法

Tab bar  +  Custom content  =  Tab bar controller

viewControllers 显示的视图控制器  tabBar 标签栏  delegate 代理

 

图片  1.大小限制 30*30  @2x的60*60

        2.ios7以前 图片需要镂空

tabBar是UITabBarController对象包含多个tabBarItem   每一个tabBarItem对应一个viewController   tabBar的高度是49     当tabBarItem超过5个 系统自动增加一个more按钮

 

一键设定所有导航视图控制器的颜色(QQ的一键换肤) 可以通过UIAppearance协议操作(这套协议系统已经帮助实现了,直接调用就行),可以对一些控件自定义颜色

 

 

Block:

是一种传值方式 可以替代协议

^声明block变量  内容包含在{} 以;结尾

定义 = 实现;

例如:

int mul = 7;

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

返回类型(^Block变量名)(参数类型)=^(参数类型 参数名){return 实现;};

 

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

//无返回值类型 无参数
-(void)testFirstBlock
{
    void(^myBlock)()=^(){
        NSLog(@"first test");
    };

    NSLog(@"zifuchuan");
    myBlock();
}

打印结果:(执行的先后顺序)

zifuchuan
first test

//无返回类型 有参数类型

-(void)testSecondBlock:(int)num Str:(NSString *)str
{
    void(^myBlock)(int,NSString *) =^(int number,NSString *string){
        NSLog(@"num == %d,str == %@",number,string);
    };
    myBlock(num,str);
}

//有返回类型 有参数类型
-(void)testThiBlock
{
    int(^myBlock)(NSString *,NSInteger) = ^(NSString *str,NSInteger num){
        int strValue = [str intValue];
        return strValue+num;
    };
    int a = myBlock(@"12",8);
    NSLog(@"a == %d",a);
}

 

//高级块语法

MainViewController.h

#import <UIKit/UIKit.h>
//定义一个Block类型 ^后面首字母大写
typedef void(^Block)(UIColor *);


@interface FirstViewController : UIViewController
//定义属性 用copy!!! 没有*
@property (nonatomic,copy) Block testBlock;

@end
MainViewController.m

-(void)dealloc
{
    //如果是成员变量就要先Block_copy
    Block_release(_testBlock);
    [super dealloc];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.navigationController.navigationBar.translucent = NO;


    [self testColorBlock];
    self.testBlock([UIColor redColor]);
}

-(void)testColorBlock
{
    void (^myBlock)(UIColor *) = ^(UIColor *color){
        [self.view setBackgroundColor:color];
    };
    self.testBlock = myBlock;
}

 

 

1.网络请求最后的返回用块语法

2.基于TabBarController 将通讯录 相册(NSTimer 1秒滚动) 多彩涂鸦 手势捏合(UIImageview)

posted @ 2014-05-04 16:31  lxl奋小斗  阅读(175)  评论(0编辑  收藏  举报