UIView的frame的扩展分类,轻松取出x、y、height、width等值

一、引言:

在ios开发中,就界面搭建、控件布局时,都会很恶心的通过很长的代码才能取出控件的x、y、height、width等值,大大降低了开发效率。那为了省略这些恶心的步骤,小编在这里给UIView添加了一个关于frame的扩展分类。

 

二、添加了分类之后的效果对比

1、未添加分类前取值:

    self.view.frame.size.width;
    self.view.frame.size.height;
    self.view.frame.origin.x;
    self.view.frame.origin.y;

2、添加了分类之后取值:

    self.view.height;
    self.view.width;
    self.view.x;
    self.view.y;
    self.view.size;

 

三、添加分类操作:

1、添加分类:

    说明:在分类中通过@property添加属性时,只能声明属性及其set、get方法,但没有实现其set、get方法,需要自己实现:set、get方法

#import <UIKit/UIKit.h>

@interface UIView (ICKExtensionOfFrame)

@property (nonatomic,assign) CGFloat x;
@property (nonatomic,assign) CGFloat y;
@property (nonatomic,assign) CGFloat width;
@property (nonatomic,assign) CGFloat height;
@property (nonatomic,assign) CGSize size;

@end
 1 #import "UIView+ICKExtensionOfFrame.h"
 2 
 3 @implementation UIView (ICKExtensionOfFrame)
 4 /**
 5  *  x 的set\get方法实现
 6  */
 7 - (void)setX:(CGFloat)x
 8 {
 9     CGRect rect = self.frame;
10     rect.origin.x = x;
11     self.frame = rect;
12 }
13 - (CGFloat)x
14 {
15     return self.frame.origin.x;
16 }
17 
18 /**
19  *  y 的set\get方法实现
20  */
21 - (void)setY:(CGFloat)y
22 {
23     CGRect rect = self.frame;
24     rect.origin.y = y;
25     self.frame = rect;
26 }
27 - (CGFloat)y
28 {
29     return self.frame.origin.y;
30 }
31 
32 /**
33  *  width 的set\get方法实现
34  */
35 - (void)setWidth:(CGFloat)width
36 {
37     CGRect rect = self.frame;
38     rect.size.width  =  width;
39     self.frame = rect;
40 }
41 - (CGFloat)width
42 {
43     return self.frame.size.width;
44 }
45 
46 /**
47  *  height 的set\get方法实现
48  */
49 - (void)setHeight:(CGFloat)height
50 {
51     CGRect rect = self.frame;
52     rect.size.height = height;
53     self.frame = rect;
54 }
55 - (CGFloat)height{
56     return self.frame.size.height;
57 }
58 
59 /**
60  *  size 的set\get方法实现
61  */
62 - (void)setSize:(CGSize)size
63 {
64     CGRect rect = self.frame;
65     rect.size = size;
66     self.frame = rect;
67 }

2、将其头文件导入项目的.pch

#import "UIView+ICKExtensionOfFrame.h"

3、在此项目中的任何控件的frame的属性取值,都可以直接取出。

转载于:https://www.cnblogs.com/jfckliving/p/4676340.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值