亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

IOS開發之Block

2019-11-14 19:13:59
字體:
來源:轉載
供稿:網友

IOS開發之Block

1.什么是block,block的作用

  UI開發和網絡常見功能實現回調,按鈕的事件處理方法是回調方法,網絡下砸后的回調處理

 ?。?)按鈕target-action  一個方法傳入按鈕中

 ?。?)表格視圖   傳入一個指針self,回調視圖控制器重的方法

 ?。?)block   語句塊,解決回調,理解為“匿名函數”,這個函數定義在方法里面

 

2.block的基本使用(語法)

  定義block變量

  定義block語句塊

//block 理解匿名函數    //void func()    //{    //}        //1.block變量的定義    //技巧:   語法詭異帶來男鞋的問題    //void func();        //定義block變量,^表示定義block    //技巧:  函數名左右家括號,在函數名前面加^    void (^block)();        //定義block語句塊,存儲到block變量中    block = ^void ()    {        NSLog(@"I am block");    };        //執行    block();

  block參數和返回值

 //2.帶有參數和返回值block    //實例    實現計算兩數之和block//    int myAdd(int x ,int y);        int (^myAdd)(int x ,int y) = ^int (int x ,int y)    {        return x+y;    };    int s = myAdd(10,20);    NSLog(@"s = %d",s);

 

  block捕獲外部變量

  block的注意事項

@interface ViewController (){    int _page;}@PRoperty (copy,nonatomic) NSString *url;@end //3.block是捕獲外部變量    //  block使用block外面的變量的注意事項        int num = 10;    __block int val = 100;    void (^bbbb)() = ^void()    {        //能使用和修改實例變量        _page = 1;                // block中不能修改局部變量的值,但可以使用        //num++;                //block中能修改__block修飾的局部變量        val++;                //有可能有警告,因為內存問題引起,注意//        __weak typeof(self) weakSelf = self;//        weakSelf.url = @"text";        self.url = @"text";            };    bbbb();

 

3.block在開發中應用(OC,UI,網絡)

1.NSMutableArray排序

2.UIView動畫

3.block實現界面反向傳值

-(void)blockDelelopApply{    //oc中的應用    //1.NSMutableArray排序        Dog *ahua = [[Dog alloc]init];    ahua.nikeName = @"ahua";    ahua.age = 4;        Dog *amiao = [[Dog alloc]init];    amiao.nikeName = @"amiao";    amiao.age = 3;        Dog *dahuang = [[Dog alloc]init];    dahuang.nikeName = @"dahuang";    dahuang.age = 5;        NSMutableArray *marr = [[NSMutableArray alloc]initWithArray:@[ahua,amiao,dahuang]];    //marr sortUsingSelector:<#(SEL)#>    [marr sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {        Dog *aDog = obj1;        Dog *bDog = obj2;//        return aDog.age > bDog.age;        return [aDog.nikeName compare:bDog.nikeName] > 0;    }];        for (Dog *d  in marr) {        NSLog(@"name = %@,age = %d",d.nikeName,d.age);    }        //2.UIView動畫    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 200, 100, 100)];    label.text = @"kkkk";    label.backgroundColor = [UIColor redColor];    [self.view addSubview:label];        //向下移動200//    [UIView animateWithDuration:<#(NSTimeInterval)#> animations:<#^(void)animations#>]    [UIView animateWithDuration:2 animations:^{        CGRect frame = label.frame;        frame.origin.x +=200;        label.frame = frame;    } completion:^(BOOL finished) {        NSLog(@"finish");                [UIView animateWithDuration:1 animations:^{            label.transform = CGAffineTransformMakeRotation(M_PI);        } completion:^(BOOL finished) {            [UIView animateWithDuration:2 animations:^{                label.frame = CGRectMake(10, 200, 100, 100);                label.transform = CGAffineTransformMakeRotation(M_PI);            }];                    }];    }];        //3.block實現界面反向傳值        UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];    button.frame = CGRectMake(0, 20, 320, 10);    [button setTitle:@"change" forState:UIControlStateNormal];    [button addTarget:self action:@selector(buttonact:) forControlEvents:UIControlEventTouchUpInside];    [self.view addSubview:button];    }-(void)buttonact:(UIButton *)but{    SecondViewController *svc = [[SecondViewController alloc]init];        //設置block    [svc setChangeBackGroundColor:^(NSString *color) {        if ([color isEqualToString:@"blue"]) {            self.view.backgroundColor = [UIColor blueColor];        }    }];                [self presentViewController:svc animated:YES completion:nil];}

  反向傳值:

    使用block實現界面傳值

    若有兩個界面A界面, B界面, A界面創建B界面, B界面值傳遞到A界面

    A界面設置block,B界面保存block

      a.在第二個界面定義block

//為了給第二個界面傳入block-(void)setChangeBackGroundColor:( void (^)(NSString *color) )action;//@property (nonatomic,copy) setChangeBackGroundColor ( void (^__)(NSString *__color) );

      b.第二個界面實現block

@interface SecondViewController (){    //定義block變量,為了保存傳入的參數    void (^_action)(NSString *color);}@end@implementation SecondViewController-(void)setChangeBackGroundColor:(void (^)(NSString *))action{    _action = action;}

      c.第二個界面給block賦值

 //改變住界面的顏色    if (_action) {        _action(@"blue");    }

      d.第一個界面設置block

    SecondViewController *svc = [[SecondViewController alloc]init];

//設置block    [svc setChangeBackGroundColor:^(NSString *color) {        if ([color isEqualToString:@"blue"]) {            self.view.backgroundColor = [UIColor blueColor];        }    }];

    [self presentViewController:svc animated:YES completion:nil];

 

代碼下載


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品福利网站| 亚洲春色另类小说| 亚洲加勒比久久88色综合| 成人综合国产精品| 91产国在线观看动作片喷水| 国产一区二区三区直播精品电影| 国产视频久久网| 伊人伊成久久人综合网小说| 日韩免费高清在线观看| 亚洲国产一区二区三区在线观看| 九九热r在线视频精品| 欧美激情视频给我| 久久久久久91香蕉国产| 国产美女直播视频一区| 国产999精品久久久| 午夜精品一区二区三区在线视频| 欧美精品一本久久男人的天堂| 欧美日韩在线看| 亚洲成人aaa| 亚洲国产精品高清久久久| 国产精自产拍久久久久久蜜| 中文字幕自拍vr一区二区三区| 国产一区二区三区日韩欧美| 精品国产鲁一鲁一区二区张丽| 91av在线影院| 欧美激情成人在线视频| 亚洲第一福利网站| 日韩大胆人体377p| 深夜福利亚洲导航| 日本精品va在线观看| 国产精品久久婷婷六月丁香| 中文字幕亚洲综合| 大伊人狠狠躁夜夜躁av一区| 日本高清视频精品| 国产精品夜色7777狼人| 热久久美女精品天天吊色| 国产精品一香蕉国产线看观看| 成人免费在线视频网站| 欧美裸体xxxx极品少妇软件| 91精品国产免费久久久久久| 欧美区二区三区| 亚洲欧洲午夜一线一品| 欧美小视频在线观看| 亚洲综合视频1区| 亚洲日韩第一页| 高清亚洲成在人网站天堂| 国产欧美一区二区三区在线| 国产精品精品国产| 日韩美女写真福利在线观看| 在线成人一区二区| 欧美激情第6页| 国产精品极品在线| 亚洲国产精品一区二区久| 亚洲一级一级97网| 中文字幕日韩免费视频| 亚洲午夜未满十八勿入免费观看全集| 中国china体内裑精亚洲片| 久久99国产综合精品女同| 97在线观看免费| 亚洲欧美一区二区激情| 日韩女优在线播放| 国产精品色视频| 久久国产精品免费视频| 九九精品在线视频| 亚洲性视频网站| 国产亚洲精品美女久久久久| 久久免费高清视频| 久久人体大胆视频| 国产日本欧美一区二区三区在线| 青青在线视频一区二区三区| 最近免费中文字幕视频2019| 欧美亚洲国产视频| 久久久久久国产| 欧洲美女免费图片一区| 麻豆成人在线看| 最近2019中文免费高清视频观看www99| 日韩中文字幕在线视频| 国产亚洲精品久久久久久牛牛| 福利一区视频在线观看| 精品久久久久久久久久ntr影视| 精品视频久久久| 亚洲免费电影在线观看| 国产精品男女猛烈高潮激情| 欧美成人免费视频| 亚洲精品美女视频| 久久综合伊人77777尤物| 国产一区香蕉久久| 日韩小视频网址| 国产大片精品免费永久看nba| 韩国19禁主播vip福利视频| 日韩大陆毛片av| 久久久成人精品| 亚洲成人999| 欧美日韩在线视频首页| 国产精品99免视看9| 亚洲图中文字幕| 日韩免费av在线| 中文欧美在线视频| 成人福利视频网| 91a在线视频| 91色视频在线观看| 午夜精品www| 国产日本欧美一区二区三区在线| 国产精品九九久久久久久久| 91av视频在线免费观看| 欧美性少妇18aaaa视频| 日韩亚洲精品视频| 亚洲成人国产精品| 日韩国产欧美精品一区二区三区| 欧美极度另类性三渗透| 亚洲精品免费在线视频| 都市激情亚洲色图| 久久免费精品日本久久中文字幕| 亚洲第一页在线| 亚洲一区二区三区sesese| 亚洲天堂网站在线观看视频| 色吧影院999| 国产精品九九久久久久久久| 国产美女精品视频免费观看| 欧美另类在线观看| 91系列在线播放| 国产精品第一视频| 日韩成人性视频| 日韩久久午夜影院| www国产精品com| 中文字幕欧美亚洲| 欧美色视频日本版| 久久影视三级福利片| 午夜欧美大片免费观看| 日韩欧美综合在线视频| 欧美高清一级大片| 成人免费午夜电影| 久久视频精品在线| 色婷婷成人综合| 懂色av中文一区二区三区天美| 国产精品久久久久av| 欧美午夜精品久久久久久人妖| 国产一区二区三区在线看| 亚洲欧美国产精品| 欧美在线性视频| 亚洲精品久久视频| 欧美日韩国产一区在线| 国产精品免费视频久久久| 亚洲福利视频网站| 亚洲女人初尝黑人巨大| 欧美日韩国产一区二区| 亚洲激情电影中文字幕| 色999日韩欧美国产| 久久99久久99精品中文字幕| 日韩极品精品视频免费观看| 亚洲欧美激情另类校园| 国产精品视频一区二区三区四| 国产suv精品一区二区| 曰本色欧美视频在线| 九九热这里只有精品免费看| 精品综合久久久久久97| 欧美高清在线观看| 九九热99久久久国产盗摄| 韩国19禁主播vip福利视频| 日韩成人在线视频网站| 欧美黑人国产人伦爽爽爽| 久热精品在线视频| 中文字幕精品—区二区| 日韩性xxxx爱|