工作心得:Block

作者: 马铃薯蜀黍 | 来源:发表于2016-07-31 23:00 被阅读53次
    20151116102246252.jpg

    block的几种使用方式:

    • blcok**作为类的属性 **
    
    
    // block步骤
    // 1.block属性
    // 2.在哪执行block
    // 3.在哪给block赋值
    
    @interface YSTabBar : UIView
    
    @property (copy, nonatomic) void (^buttonClickBlock)(NSInteger);
    
    - (void)loadButtonWithImage:(UIImage*)image andImageSel:(UIImage*)imageSel;
    
    @end
    
    
    • blcok**作为方法参数替代代理的实现 **
    @interface YSTabBar : UIView
    
    /**
     *  blcok作为方法参数替代代理的去使用
    .h中为:
    
     *
     *  @param code          参数1:无返回值的block(code) 参数:自定义tabbar,切换控制器索引
     *  @param image         参数2:normal图片
     *  @param imageSelected 参数3:selected选中状态图片
     */
    
    - (void)addButtonWithClickBlock:(void (^)(YSTabBar* tabbar, NSInteger clickIndex))code andImage:(UIImage*)image andSelectedImage:(UIImage*)imageSelected;
    
    @end
    
    
    • 当然也可以为block** 起别名** 利用 typedef
    @class YSTabBar;
    
    typedef  void(^Code)(YSTabBar * tabbar, NSInteger clickIndex);
    
    @interface YSTabBar : UIView
    
    /**
     *  blcok作为方法参数替代代理的实现
     *
     *  @param code          无返回值的block 参数:自定义tabbar,切换控制器索引
     *  @param image         normal图片
     *  @param imageSelected selected选中状态图片
     */
    
    //- (void)addButtonWithClickBlock:(void (^)(YSTabBar* tabbar, NSInteger clickIndex))code andImage:(UIImage*)image andSelectedImage:(UIImage*)imageSelected;
    
    - (void)addButtonWithClickBlock:(Code )code andImage:(UIImage*)image andSelectedImage:(UIImage*)imageSelected;
    
    @end
    
    
    • 也可以用代理来实现
    @class YSTabBar;
    
    // 代理的步骤
    // 1.协议
    // 2.协议-代理方法
    // 3.代理属性
    // 4.在哪执行代理方法
    // 5.在哪使用代理方法
    
    @protocol YSTabBarDelegate <NSObject>
    
    @optional
    - (void)tabbar:(YSTabBar*)tabbar buttonClickWithIndex:(NSInteger)index;
    
    @end
    
    @interface YSTabBar : UIView
    
    @property (weak, nonatomic) id<YSTabBarDelegate> delegate;
    
    - (void)loadButtonWithImage:(UIImage*)image andImageSel:(UIImage*)imageSel;
    
    @end
    
    

    如果对你有帮助 不胜荣幸

    邮箱地址:zh_yes@foxmail.com

    相关文章

      网友评论

        本文标题:工作心得:Block

        本文链接:https://www.haomeiwen.com/subject/aihxsttx.html