抽取UIView分类

很多时候我们在写控件的frame的时候都要写一长串分self.frame.size.width,为了简化操作,我们可以抽取一个UIView分类,以后每次写farme的时候只需要写self.lhl_width,下面是具体实现:
  • 新建一个分类继承自UIView:


  • UIView+Frame.h:此处定义属性名称的时候需要注意,为了防止和同事起重名的属性名,建议加上自己独有的前缀,以防重定义
    #import <UIKit/UIKit.h>

      @interface UIView (Frame)
    
      @property CGFloat lhl_width;
      @property CGFloat lhl_height;
      @property CGFloat lhl_x;
      @property CGFloat lhl_y;
    
      @end
    
  • UIView+Frame.m:实现UIView+Frame.h中属性的setter和getter方法:

    #import "UIView+Frame.h"

    @implementation UIView (Frame)

    - (void)setLhl_width:(CGFloat)lhl_width
    {
        CGRect rect = self.frame;
        lhl_width = rect.size.width;
        self.frame = rect;
    }

    - (CGFloat)lhl_width
    {
        return self.frame.size.width;
    }

    - (void)setLhl_height:(CGFloat)lhl_height
    {
        CGRect rect = self.frame;
        lhl_height = rect.size.height;
        self.frame = rect;
    }

    - (CGFloat)lhl_height
    {
        return self.frame.size.height;
    }

    - (void)setLhl_x:(CGFloat)lhl_x
    {
        CGRect rect = self.frame;
        lhl_x = rect.origin.x;
        self.frame = rect;
    }

    - (CGFloat)lhl_x
    {
        return self.frame.origin.x;
    }

    - (void)setLhl_y:(CGFloat)lhl_y
    {
        CGRect rect = self.frame;
        lhl_y = rect.origin.y;
        self.frame = rect;
    }

    - (CGFloat)lhl_y
    {
        return self.frame.origin.y;
    }

    @end

推荐阅读更多精彩内容

  • VLC的集成和使用 VLC介绍 VLC Media Player (VideoLAN) 为 Windows、Lin...
    Pocket阅读 16,898评论 74 63
  • 1.NSTimer //暂停if ([timer isValid]) {[timer setFireDate:[N...
    俊月阅读 559评论 0 0
  • 1、设置UILabel行间距 NSMutableAttributedString* attrString = [[...
    十年一品温如言1008阅读 1,004评论 0 3
  • Quartz2D以及drawRect的重绘机制字数1487 阅读21 评论1 喜欢1一、什么是Quartz2D Q...
    PurpleWind阅读 447评论 0 3
  • 【晨读感悟第19天】从《战狼||》体会到做最该做的事 昨天下午看了《战狼||》,不愧是票房冠军,我去的1号大厅几乎...
    在在姐阅读 34评论 0 0
  • 文/一苇如斯 昨天在刷朋友圈的时候,突然余壹的一条状态陷入眼帘:“是你等我,还是我等你?最近在想一个问题:如何在一...
    渐和阅读 2,161评论 0 3
  • 你说过牵了手就算约定――张韶涵《亲爱的那不是爱情》 记得初中毕业后,你我就去了不同高中,断了联系。再见,就是高二开...
    韩小仙阅读 296评论 1 1
  • EnLighten是unity5后引用的一套实时全局光照解决方案。  在我们VR设计中都是使用PBR技术理论制作出...
    Levi_Wan阅读 582评论 0 1