前言
- 本来是不想写这一篇的,因为自己研究也不到位,只会一些对于分类(category)的基本理解,肯定是不如参考文章这一篇写得好。
- 但是呢,突然看到我旁边某位什么都懂的同学,在看了和我一样的参考文章后,依然是建了个四不像的文件
- 虽然我估计这么笨的人也少有,但我还是写一篇博客介绍下简单直白的如何新建一个分类(category)吧
参考文章
分类(category)的用处和存在意义
- 我们知道,如果想实现自定义label的话,需要新建一个继承于UILabel的类,并在创建UILabel时,直接创建新建的这个Label类
- 我们可以在这个新的Label类里增加成员变量,方法等等
- 而分类(category)可以理解为弱化版的新建类,在这个类里只能增加方法,而不能添加成员变量
- 而他的好处是,只要import了该分类(category),只要是UILabel(label是用来举例的,任何UI控件都一个道理)都可以使用其中的方法,而不需要在单独创建新的label了
- 而这在面对想多人合作或者比较复杂的项目时,显然还是非常方便好用的
详细步骤
- 首先,新建一个Objective-C File,选择Category,名字取为UILabel+Category(你自定义的Category名,下文就以Category替代这个名字,比如可以取名叫做UILabel+LabelHeight)
//
// UILabel+LabelHeight.h
// zhihu-daily-ImitationDemo
//
// Created by mac on 2018/11/23.
// Copyright © 2018 姜凯文. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface UILabel(LabelHeight)
@end
//
// UILabel+LabelHeight.m
// zhihu-daily-ImitationDemo
//
// Created by mac on 2018/11/23.
// Copyright © 2018 姜凯文. All rights reserved.
//
#import "UILabel+LabelHeight.h"
@implementation UILabel(LabelHeight)
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
@end
- 好了 这样就OK了 想加什么方法就加进去吧
- 比如加了类方法,调用时只要[UILabel 类方法]就行了,轻松加愉快
- 好吧,我也不懂怎么会有人学不会这个
- 如果想看下怎么写比较好,看第三方库就行,基本里面都会用到这个