zoukankan      html  css  js  c++  java
  • UIControl类控件统一管理

    static char OperationKey;

     

    +(NSString *)eventName:(UIControlEvents)event

    {

        switch (event) {

            case UIControlEventTouchDown:          return @"UIControlEventTouchDown";

            case UIControlEventTouchDownRepeat:    return @"UIControlEventTouchDownRepeat";

            case UIControlEventTouchDragInside:    return @"UIControlEventTouchDragInside";

            case UIControlEventTouchDragOutside:   return @"UIControlEventTouchDragOutside";

            case UIControlEventTouchDragEnter:     return @"UIControlEventTouchDragEnter";

            case UIControlEventTouchDragExit:      return @"UIControlEventTouchDragExit";

            case UIControlEventTouchUpInside:      return @"UIControlEventTouchUpInside";

            case UIControlEventTouchUpOutside:     return @"UIControlEventTouchUpOutside";

            case UIControlEventTouchCancel:        return @"UIControlEventTouchCancel";

            case UIControlEventValueChanged:       return @"UIControlEventValueChanged";

            case UIControlEventEditingDidBegin:    return @"UIControlEventEditingDidBegin";

            case UIControlEventEditingChanged:     return @"UIControlEventEditingChanged";

            case UIControlEventEditingDidEnd:      return @"UIControlEventEditingDidEnd";

            case UIControlEventEditingDidEndOnExit:return @"UIControlEventEditingDidEndOnExit";

            case UIControlEventAllTouchEvents:     return @"UIControlEventAllTouchEvents";

            case UIControlEventAllEditingEvents:   return @"UIControlEventAllEditingEvents";

            case UIControlEventApplicationReserved:return @"UIControlEventApplicationReserved";

            case UIControlEventSystemReserved:     return @"UIControlEventSystemReserved";

            case UIControlEventAllEvents:          return @"UIControlEventAllEvents";

            default:

                return @"description";

        }

        return @"description";

    }

     

    - (void)handleControlEvent:(UIControlEvents)event withBlock:(void(^)(id sender))block {

        

        NSString *methodName = [UIControl eventName:event];

        

        NSMutableDictionary *opreations = (NSMutableDictionary*)objc_getAssociatedObject(self, &OperationKey);

        

        if(opreations == nil)

        {

            opreations = [[NSMutableDictionary alloc] init];

            objc_setAssociatedObject(self, &OperationKey, opreations, OBJC_ASSOCIATION_RETAIN);

        }

        [opreations setObject:block forKey:methodName];

        

        [self addTarget:self action:NSSelectorFromString(methodName) forControlEvents:event];

        

    }

     

    - (void)removeHandlerForEvent:(UIControlEvents)event

    {

        

        NSString *methodName = [UIControl eventName:event];

        NSMutableDictionary *opreations = (NSMutableDictionary*)objc_getAssociatedObject(self, &OperationKey);

        

        if(opreations == nil)

        {

            opreations = [[NSMutableDictionary alloc] init];

            objc_setAssociatedObject(self, &OperationKey, opreations, OBJC_ASSOCIATION_RETAIN);

        }

        [opreations removeObjectForKey:methodName];

        [self removeTarget:self action:NSSelectorFromString(methodName) forControlEvents:event];

    }

  • 相关阅读:
    【学习笔记】pip3 安装使用国内源
    【学习笔记】Team Explorer for Microsoft Visual Studio2015 安装时发生严重错误
    微信聊天记录长图 打印
    Go语言中用 os/exec 执行命令的五种姿势
    Python 代码调试神器:PySnooper
    终于来了!!Pyston v2.0 发布,解决 Python 慢速的救星
    超详细讲解如何使用 pdb 在服务器上调试代码
    超详细图文教你如何使用 PyCharm 进行远程调试
    最全的 pip 使用指南,50 % 你可能都没用过~
    学 Python 一定要学会的几个高阶函数
  • 原文地址:https://www.cnblogs.com/ranger-jlu/p/4021951.html
Copyright © 2011-2022 走看看