关于blockKit的使用 2 UIKit文件夹下一些常用的方法

来源:互联网 发布:淘宝优惠券卖家发放 编辑:程序博客网 时间:2024/05/16 19:42

1.UIBarButtonItem+BlocksKit

- (id)bk_initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem handler:(void (^)(id sender))action

    初始化一个系统barButtonItem 事件在blocks里面

- (id)bk_initWithTitle:(NSString *)title style:(UIBarButtonItemStyle)style handler:(void (^)(id sender))action

UIBarButtonItem *barBtnItem = [[UIBarButtonItem alloc] bk_initWithTitle:@"testBack" style:UIBarButtonItemStylePlain handler:^(id sender) {
        NSLog(@"test");
    }];

self.navigationItem.leftBarButtonItem = barBtnItem;

        点击返回testBack          


- (id)bk_initWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style handler:(void (^)(id sender))action

    与UIBarButtonItem中的方法类似,将事件封装在了block里面

- (id)bk_initWithImage:(UIImage *)image landscapeImagePhone:(UIImage *)landscapeImagePhone style:(UIBarButtonItemStyle)style handler:(void (^)(id sender))action

    landScapeImagePhone:横屏图片

2.UIGestureRecognizer+BlocksKit

- (id)bk_initWithHandler:(void (^)(UIGestureRecognizer *sender, UIGestureRecognizerState state, CGPoint location))block delay:(NSTimeInterval)delay

    因为这个类中其他方法最后都是调用了这个方法完成对手势的初始化,这里也是把手势触发的方法放在block处,当用户使用了某个手势block就会回调

UITapGestureRecognizer *gestTest =[UITapGestureRecognizer bk_recognizerWithHandler:^(UIGestureRecognizer *sender, UIGestureRecognizerState state, CGPoint location) {
                                                                 NSLog(@"gesture=%@, state= %ld,location:x=%.2f,y=%.2f",sender,state,location.x,location.y);
                                                           }];

[self.view addGestureRecognizer:gestTest];


3.UITextField+BlocksKit

这个类里面全是block属性,每个属性不再逐个解释,下面是个对bk_didBeginEditingBlock的使用:

UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(100, 200, 100, 30)];
    textField.backgroundColor = [UIColor grayColor];
    [self.view addSubview:textField];
    
    textField.bk_didBeginEditingBlock = ^(UITextField *tf){
        tf.userInteractionEnabled = NO;
        [UIAlertView bk_showAlertViewWithTitle:@"不让你输入" message:@"不服打我啊" cancelButtonTitle:@"cancel" otherButtonTitles:nil handler:^(UIAlertView *alertView, NSInteger buttonIndex) {
            [self bk_performBlock:^(id obj) {
                [tf resignFirstResponder];
                tf.userInteractionEnabled = YES;
            } afterDelay:2.0];
        }];
    };


4.UIView+BlocksKit

- (void)bk_whenTouches:(NSUInteger)numberOfTouches tapped:(NSUInteger)numberOfTaps handler:(void (^)(void))block;

    选择一个UIview的子类,即可调用UIView+BlocksKit类里面的方法,userInteractionEnabled要记得设置哦,方法就是快速添加一个点击事件,点击次数可以自己设置,然后点击事件在block中完成即可。感觉库里面的 bk_whenDoubleTapped方法是不是有问题?应该是numberOfTaps 为2吧。

UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(100, 200, 50, 50)];
    imgView.image = [UIImage imageNamed:@"9"];
    imgView.userInteractionEnabled = YES;
    [self.view addSubview:imgView];
    
    [imgView bk_whenTouches:1 tapped:2 handler:^{
        NSLog(@"这是QQ");
    }];

- (void)bk_eachSubview:(void (^)(UIView *subview))block;

    遍历view中的所有的子视图,然后可以选择对某个subView进行操作或者对没一个subView进行操作。


0 0
原创粉丝点击