zoukankan      html  css  js  c++  java
  • 如何再分类中添加属性

     1 #import <UIKit/UIKit.h>
     2 
     3 typedef enum {
     4     HMImageDirectionLeft, // 左边 0
     5     HMImageDirectionRight,// 右边 1
     6 } HMImageDirection;
     7 
     8 
     9 @interface UIImage (Extension)
    10 // x值
    11 @property(nonatomic,assign) CGFloat x;
    12 // y值
    13 @property(nonatomic,assign) CGFloat y;
    14 // 移动方向
    15 @property(nonatomic,assign) HMImageDirection direction;
    16 
    17 @end
    #import "UIImage+Extension.h"
    #import <objc/runtime.h>
    @implementation UIImage (Extension)
    
    static char imageX;
    static char imageY;
    static char imageDirection;
    - (void)setX:(CGFloat)x{
        // objc_setAssociatedObject:利用该方法可以给一个分类添加属性
        objc_setAssociatedObject(self, &imageX, [NSString stringWithFormat:@"%f",x], OBJC_ASSOCIATION_COPY);
    }
    
    - (CGFloat)x {
        return [objc_getAssociatedObject(self, &imageX) floatValue];
    }
    
    - (void)setY:(CGFloat)y {
        // objc_setAssociatedObject:利用该方法可以给一个分类添加属性
        objc_setAssociatedObject(self, &imageY, [NSString stringWithFormat:@"%f",y], OBJC_ASSOCIATION_COPY);
    }
    
    - (CGFloat)y {
        return [objc_getAssociatedObject(self, &imageY) floatValue];
    }
    
    - (void)setDirection:(HMImageDirection)direction {
        // objc_setAssociatedObject:利用该方法可以给一个分类添加属性
        objc_setAssociatedObject(self, &imageDirection, [NSString stringWithFormat:@"%d",direction], OBJC_ASSOCIATION_COPY);
    }
    
    - (HMImageDirection)direction {
         return [objc_getAssociatedObject(self, &imageDirection) boolValue];
    }
    
    @end
  • 相关阅读:
    微信支付的安全漏洞之XXE
    IP地址分类(A类 B类 C类 D类 E类)
    MySql新增表的字段,删除表字段
    Java基础之中间件的初识
    Java基础之IO框架
    微信H5支付坑一--手续费未结算
    设计模式之简单工厂模式
    nginx负载均衡的5种策略(转载)
    Mybatis注意点之#与$区别
    RSF 分布式 RPC 服务框架的分层设计
  • 原文地址:https://www.cnblogs.com/neilHoIOS/p/4637476.html
Copyright © 2011-2022 走看看