下面給大家做一個(gè)小小的演示代碼,具體的工程中樟遣,大家在做設(shè)置了而叼。。豹悬。
看一下代碼調(diào)用
self.cutsView = [[UIView alloc] init];
self.cutsView.X = 100;
self.cutsView.Y = 100;
self.cutsView.W = 50;
self.cutsView.H = 200;
self.cutsView.backgroundColor = [UIColor redColor];
[self.view addSubview:self.cutsView];
如上述代碼葵陵,我們?cè)谛薷娜魏慰丶囊粋€(gè)x,y,w,h屬性的時(shí)候都必須重現(xiàn)購(gòu)置rect,太麻煩了瞻佛“D眩看看上面的代碼,簡(jiǎn)單涤久、快涡尘、方便、修改其中一個(gè)屬性都不用在重新創(chuàng)建新的rect响迂。并且是即刻生效考抄。66666
UIView的屬性是沒(méi)有這些的,而且frame的屬性是onlyready的蔗彤,是不可修改的川梅。
如果要是去修改就用延展,這是一種簡(jiǎn)單方式去修改UIView的大小和位置然遏。
給UIView加擴(kuò)展
就可以直接拿到你給對(duì)象添加屬性贫途。so easy!4帧丢早!
代碼實(shí)現(xiàn)如下
1:給uiview添加一個(gè)延展
.h文件如下
#import <UIKit/UIKit.h>
@interface UIView (custom)
@property (nonatomic, assign) CGFloat X;
@property (nonatomic, assign) CGFloat Y;
@property (nonatomic, assign) CGFloat W;
@property (nonatomic, assign) CGFloat H;
@end
.m文件如下
#import "UIView+custom.h"
@implementation UIView (custom)
-(void)setX:(CGFloat)X {
CGRect origionRect = self.frame;
CGRect newRect = CGRectMake(X, origionRect.origin.y, origionRect.size.width, origionRect.size.height);
self.frame = newRect;
}
-(CGFloat)X {
return self.frame.origin.x;
}
-(void)setY:(CGFloat)Y {
CGRect origionRect = self.frame;
CGRect newRect = CGRectMake(origionRect.origin.x, Y, origionRect.size.width, origionRect.size.height);
self.frame = newRect;
}
-(CGFloat)Y {
return self.frame.origin.y;
}
-(void)setW:(CGFloat)W {
CGRect origionRect = self.frame;
CGRect newRect = CGRectMake(origionRect.origin.x, origionRect.origin.y,W, origionRect.size.height);
self.frame = newRect;
}
-(CGFloat)W {
return self.frame.size.width;
}
-(void)setH:(CGFloat)H {
CGRect origionRect = self.frame;
CGRect newRect = CGRectMake(origionRect.origin.x, origionRect.origin.y,origionRect.size.width, H);
self.frame = newRect;
}
-(CGFloat)H {
return self.frame.size.height;
}
@end
在這里主要重寫(xiě)了變量的set和get方法。
2:獲取當(dāng)前控件的屬性數(shù)據(jù)
那就可以直接取值了
self.cutsView.X
添加延展是利用了在oc中的控件繼承圖的關(guān)系秧倾。
備注:
(提高裝逼能力T乖汀!D窍取)
如有問(wèn)題可添加我的QQ:1290925041
還可添加QQ群:234812704(洲洲哥學(xué)院)
歡迎各位一塊學(xué)習(xí)农猬,提高逼格!
也可以添加洲洲哥的微信公眾號(hào)
添加微信公眾號(hào)最快最好的收聽(tīng)