美文网首页
关于分类创建

关于分类创建

作者: Little_Dragon | 来源:发表于2015-07-28 23:16 被阅读104次
    • 系统类的方法不够,不想自定义控件,可用用分类给系统类添加新的方法
    • 常见分类,frame , 写frame太麻烦,需要点几下才能出来x,y,width,height。
      而且 oc对象frame结构体的不能直接进行修改。 需要创建临时变量,这样又很麻烦。所以给 UIView加frame 分类,方便读取修改frame。
    • 可能会说 ,分类怎么会有成员属性,不是不能添加成员属性吗? 其实我们只是想拿到set 和get方法而已。
    #import <UIKit/UIKit.h>
    @interface UIView (Frame)
    // @property在分类里面只会自动生成get,set方法,并不会生成下划线的成员属性
    @property (nonatomic, assign) CGFloat width;
    @property (nonatomic, assign) CGFloat height;
    @property (nonatomic, assign) CGFloat x;
    @property (nonatomic, assign) CGFloat y;
    @end
    
    #import "UIView+Frame.h"
    @implementation UIView (Frame)
    - (CGFloat)width
    {    return self.frame.size.width;}
    - (void)setWidth:(CGFloat)width
    {    CGRect frame = self.frame;    
    frame.size.width = width;   
     self.frame = frame;}
    - (CGFloat)heigh
    t{    return self.frame.size.height;}
    - (void)setHeight:(CGFloat)height
    {    CGRect frame = self.frame;  
      frame.size.height = height;    
    self.frame = frame;}
    - (CGFloat)x
    {    return self.frame.origin.x;}
    - (void)setX:(CGFloat)x
    {    CGRect frame = self.frame;   
     frame.origin.x = x;   
     self.frame = frame;}
    - (CGFloat)y
    {    return self.frame.origin.y;}
    - (void)setY:(CGFloat)y
    {    CGRect frame = self.frame;   
     frame.origin.y = y;   
     self.frame = frame;}
    @end
    
    • 还有一个分类就是 图片的分类,对于ios7以后,由于扁平化管理,所以对于其navigationBar上面的按钮(图片 以及 字体)统一渲染成了蓝色, 所以需要进行修改,对于字体的话可以直接修改。
      对于图片的话,需要重新改其渲染方式,让其不进行渲染就行了
    #import <UIKit/UIKit.h>
    @interface UIImage (Image)
    // 返回一张没有渲染的图片
    + (instancetype)imageWithOriginRenderingName:(NSString *)imageName;
    @end
    
    #import "UIImage+Image.h"
    @implementation UIImage (Image)
    
    + (instancetype)imageWithOriginRenderingName:(NSString *)imageName
    {    UIImage *image = [UIImage imageNamed:imageName];       
    return [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];}
    @end
    

    相关文章

      网友评论

          本文标题:关于分类创建

          本文链接:https://www.haomeiwen.com/subject/wobmqttx.html