码迷,mamicode.com
首页 > 其他好文 > 详细

给category添加基本数据类型属性

时间:2015-07-08 00:18:19      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

给category添加基本数据类型属性

技术分享

 

技术分享

 

说明

通常,我们添加属性都是通过对象扩展来实现的,其实,我们也可以用runtime来添加基本数据类型的属性

 

源码

//
//  UIView+AnimationProperty.h
//  RuntimeCategory
//
//  Created by YouXianMing on 15/7/8.
//  Copyright (c) 2015年 YouXianMing. All rights reserved.
//

#import <UIKit/UIKit.h>

@interface UIView (AnimationProperty)

@property (nonatomic) CGFloat  scale;

@end
//
//  UIView+AnimationProperty.m
//  RuntimeCategory
//
//  Created by YouXianMing on 15/7/8.
//  Copyright (c) 2015年 YouXianMing. All rights reserved.
//

#import "UIView+AnimationProperty.h"
#import <objc/runtime.h>

@implementation UIView (AnimationProperty)

NSString * const _recognizerScale = @"_recognizerScale";
- (void)setScale:(CGFloat)scale {

    objc_setAssociatedObject(self, (__bridge const void *)(_recognizerScale), @(scale), OBJC_ASSOCIATION_RETAIN_NONATOMIC);
    self.transform = CGAffineTransformMakeScale(scale, scale);
}
- (CGFloat)scale {

    NSNumber *scaleValue = objc_getAssociatedObject(self, (__bridge const void *)(_recognizerScale));
    return scaleValue.floatValue;
}

@end
//
//  ViewController.m
//  RuntimeCategory
//
//  Created by YouXianMing on 15/7/8.
//  Copyright (c) 2015年 YouXianMing. All rights reserved.
//

#import "ViewController.h"
#import "UIView+AnimationProperty.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    UIView *redView         = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    redView.backgroundColor = [UIColor redColor];
    [self.view addSubview:redView];
    
    
    UIView *greenView         = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    greenView.backgroundColor = [UIColor greenColor];
    greenView.scale           = 0.5f;
    [self.view addSubview:greenView];

}


@end

 

分析

技术分享

 

给category添加基本数据类型属性

标签:

原文地址:http://www.cnblogs.com/YouXianMing/p/4628840.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!