iOS中分类(category)的用

分类(category)

  • 分拣是以扩大系统类的办法要有的平种植办法。

  • 分拣的来意就是以非修改原有类的基础及,为一个近乎扩展方法,最根本的凡好让系统类扩展我们好定义之道。

  • 分类中得以看原本类的积极分子变量,但只能看@protect以及@public形式之变量。

  • 如果如被分类添加成员变量,则需写变量的get、set方法,否则添加的积极分子变量无法给调用。

  • 用小心一下命名分类命名,如果项目受到凡是被这个看似的某些职能写个分类,那么分类的命名最好不好直接取名吧category。比如来一个Person类,意思是人类,在person类中我们发一个方式,-(void)eat;意义是吃。因为每个人类都见面吃,人类有成百上千一块特性,但是呢出为数不少不同点,比如,并无是每个人还见面踢足球,这时候我勾勒一个分拣,给爱运动的食指,这个分类的名叫sport。因为是Person类的分类,你会见到变化的名字叫做Person+sport。

  • 如若给一个类定义了少单分类,这简单只分类中分头实现了同样的一个方,调用方法上,这半单道还见面被实施,所以尽量避免这样的气象出现是正解。

  • 使用分类时需引入分类头文件。

 
怀揣在惴惴不安的情绪,你拖在尽可能减少可依旧笨重的大使在阴雨连连的气候遭遇至了老就幻想了同不善以同样糟糕的高校。

使用(以UIView为例)

  啊!大学,前生十七年的渴冀;大学,梦着删去不失之执念。

1、创建一个分拣

(1)Cmd+N,iOS–>Objective-C File,Next;
(2)File Type选择category,class选择得的接近,分类名,Next。

 
于古城西安之街头兜兜转转,自由散漫,碰到好玩的事物就是各种游戏,且当小憩了会儿。

2、分类文件

即时是被UIView的frame写的一个分拣

#import <UIKit/UIKit.h>

@interface UIView (Frame)

//添加的成员变量
@property CGFloat origin_x;
@property CGFloat origin_y;

@property CGFloat width;
@property CGFloat height;

//扩展的方法
/**
 *  @author MX, 16-05-29 15:05:22
 *
 *  位移(根据center移动)
 *
 *  @param point
 */
- (void)moveTo:(CGPoint) point;
/**
 *  @author MX, 16-05-29 15:05:27
 *
 *  指定比率放大或者缩小
 *
 *  @param scale    指定的比率
 */
- (void)scaleBy:(CGFloat) scale;

@end

#import "UIView+Frame.h"

@implementation UIView (Frame)

@dynamic origin_x;
@dynamic origin_y;
@dynamic width;
@dynamic height;

//实现set、get方法
- (CGFloat)origin_x
{
    return self.frame.origin.x;
}
- (CGFloat)origin_y
{
    return self.frame.origin.y;
}
- (CGFloat)width
{
    return self.frame.size.width;
}
- (CGFloat)height
{
    return self.frame.size.height;
}
- (CGFloat)toLeftMargin
{
    return self.frame.origin.x+self.frame.size.width;
}
- (CGFloat)toTopMargin
{
    return self.frame.origin.y+self.frame.size.height;
}


- (void)setWidth:(CGFloat)width
{   
    if (width != self.frame.size.width) {
        CGRect newframe = self.frame;
        newframe.size.width = width;
        self.frame = newframe;
    }
}
- (void)setHeight:(CGFloat)height
{  
    if (height != self.frame.size.height)
    {
        CGRect newframe = self.frame;
        newframe.size.height = height;
        self.frame = newframe;
    }
}
- (void)setOrigin_x:(CGFloat)origin_x
{  
    if (origin_x != self.frame.origin.x)
    {
        CGRect newframe = self.frame;
        newframe.origin.x = origin_x;
        self.frame = newframe;
    }
}
- (void)setOrigin_y:(CGFloat)origin_y
{   
    if (origin_y != self.frame.origin.y)
    {
        CGRect newframe = self.frame;
        newframe.origin.y = origin_y;
        self.frame = newframe;
    }
}

#pragma mark 扩展的方法
- (void)moveTo:(CGPoint) point
{
    if ((self.center.x != point.x) || (self.center.y != point.y))
    {
        [UIView animateWithDuration:.3 animations:^{
            CGPoint newCenter = self.center;
            newCenter.x += point.x;
            newCenter.y += point.y;
            self.center = newCenter;
        }];
    }
}
- (void)scaleBy:(CGFloat) scale
{
    if (scale >0 && scale != 1)
    {
        [UIView animateWithDuration:.3 animations:^{
            CGRect newframe = self.frame;
            newframe.size.width *= scale;
            newframe.size.height *= scale;
            self.frame = newframe;
        }];
    }
}

@end

地方对于UIView写的归类,添加了成员变量,而且扩展了UIView类的不二法门。

  用脚步踏出不羁的轨迹,却从没想去浪漫地丈量青春;用画面记录平凡的事迹,却没打算痴醉地恋恋不舍。

 
负同等迟迟小的背包,蹬在摩拜或小黄车悠悠地不断于城市的巷口,按照地图索引,串联名胜遗址的缘惜,历史都就,魂旨逸脱。品一杯浓醇的老酸奶,夹一筷子香溢的泡馍,为了一解正宗寓意的嘴馋,也确实是耐得住让丁绝望的冗长的排队队伍吖!(美食之抓住,吃货的力量哈!)

最后

参照文档:http://www.cocoachina.com/ios/20161018/17784.html
此间总结了有常用之分类https://github.com/Mexiang/category,都是略经常用底章程,会随地总结创新github。

  不过,也来很多时盲目跟被群众所蜂拥追拍的,其实并不一定符合您的只求。

 
哥哥要转洛阳底前天始发,你就是只是不鸣金收兵地伤感。面对即将到来的分手,你乱至极,却故作风轻云淡。还要谢915阿姨记得把不小心熟睡在车上的若叫醒,才不至于错过了归途的母校。一不可多得台阶,拾级而上,匆忙也非遑。

  内心空落落的,是坐你真的如独自面对在这边未来几年之衣食住行了为?

 
中心广场的生屏幕上正好放映着如火如荼开展着的足球赛,挟裹着月的清辉与荧屏之烁翎,三老三俩俩儿的观众。抬头的那么瞬间,脑海中突然撞出了呀记忆,很陌生,很熟悉。下一样秒,你感动无比。对,就是是广场,那场足球赛,但驻足的人儿是否就是就出现在梦幻中的那些人儿?不得而知……

 
你拼命回忆:到底是呀时梦到了同这一律模一样的现象?你,笑了,惊了,质疑了,命中注定?既然冥冥之中你本就是属于这所学,那高考前您并尽全力熬了的那些无法言说的磨难又到底什么?

  不,憧憬着,努力了,成长了,所以,你以这边,你,才是现底乃。

  也罢,走吧,回到那个没留宿过的起居室,等着公的,谁知还有什么……

 
导员初次来访寝室的当儿,讲了这么一句子被你少没有透彻理解的口舌“有一个和谐的起居室,大学四年见面好了得多。”是也?她的源远流长,也是针对性你们的殷殷祝福。最初的相知,每个人还表现有十二万分的礼,或许讲成是客套更为纯粹。你帮其援,欢声笑语。寝室无厘头的游乐,喧嚣正练各种语言,还有不时猛然从天而降的古怪到误以为是哭的鬼笑。

 
“嗯哼,还吓我们是在这卧室”你开学前深深的担心仿佛打消了众。一个室友的过境,让本独一无二的“六仁”变扭了风的“五仁”月饼。

  随着年华之延,尚未牢固的岩壁便给同样根无意坠落的头发碰裂出万步深渊。

 
你习惯大大咧咧、傻呵呵的,当然会生精美女孩来与公开对比;你莫在心上的小争论,却会在偶然的辩执中并非预兆地于生拉硬扯出来。你们不知晓其中的意思何,但,那实在有了。无言……

 
第一涂鸦莫名的冤枉,你装聋作哑,却忍不住内心的刺痛,算了吧,原谅呗~又同样次于纠结的垂死挣扎,你张了张口,却总不知该怎么劝导,算了吧,忽小呗~

 
但实在无论怎样自慰,闹矛盾,难被之免只是当事人,苦恼的还有多丁。你头痛任何人任何款式之吵架,更切贴地谈,是胆战心惊的分又多片。因为,那样会挫伤很多群人,无辜的,有罪之~

  愿荏苒时光,细细韵淌,甘俯也傻瓜,乐昂给目标,仅此而已。

  爱你,信你;缘你,随你~