[擴充]為UIView擴充x,y,width,height,centerX,centerY,Size,Origin等屬性

來源:互聯網
上載者:User

標籤:

  大家應該知道如何設定一個view組件的位置把,是的,如下:

  view.frame=CGRectMake(x,y,width,height);//設定組件的x,y座標,設定組件的寬度高度。。。

  如果我單獨要設定座標或者寬度高度,得這樣:

  view.frame.size.width=100;

  view.frame.size.height=100;

  如果你想偷個懶,比如:

  view.frame.size=(CGSize){200,200};//這個語句會報錯,因為無法對size賦值

  

  通過上面的代碼,大家會發現,訪問座標和寬度高度怎麼這麼麻煩呢?

  是很麻煩,因為iOS提供過來就是這樣訪問的,如果我想要直接一點,比如:

  view.x=0;

  view.y=0;

  view.height=100;

  view.width=100;

  這樣訪問起來寫起代碼來是不是簡單很多。那要怎麼實現這樣的功能呢,我們可以去擴充UIView類,提供這樣的屬性供使用者直接存取。

  建立一個檔案叫做:HWUIView+Extension,繼承自NSObject

  HWUIView+Extension.h檔案代碼如下:

////  Extension.h////  Created by PC-qiu on 15/6/11.//  Copyright (c) 2015年 HM. All rights reserved.//#import <UIKit/UIKit.h>@interface UIView(Extension)//這裡一定要這樣寫代表擴充UIView,當然你也可以去擴充別的東西//x座標屬性@property (nonatomic,assign)CGFloat x;//y座標@property (nonatomic,assign)CGFloat y;//寬度@property (nonatomic,assign)CGFloat width;//高度@property (nonatomic,assign)CGFloat height;//大小@property (nonatomic,assign)CGSize size;//位置@property (nonatomic,assign)CGPoint origin;//中心點x@property (nonatomic,assign)CGFloat centerX;//中心點y@property (nonatomic,assign)CGFloat centerY;@end

  而HWUIView+Extension.m檔案都是對這些屬性的get,set進行重寫,實現功能,代碼如下:

////  Extension.m//  黑馬微博2////  Created by PC-qiu on 15/6/11.//  Copyright (c) 2015年 HM. All rights reserved.//#import "HWUIView+Extension.h"@implementation UIView(Extension)//x屬性的get,set-(void)setX:(CGFloat)x{    CGRect frame=self.frame;    frame.origin.x=x;    self.frame=frame;}-(CGFloat)x{    return self.frame.origin.x;}//centerX屬性的get,set-(void)setCenterX:(CGFloat)centerX{    CGPoint center=self.center;    center.x=centerX;    self.center=center;}-(CGFloat)centerX{    return self.center.x;}//centerY屬性的get,set-(void)setCenterY:(CGFloat)centerY{    CGPoint center=self.center;    center.y=centerY;    self.center=center;}-(CGFloat)centerY{    return self.center.y;}//y屬性的get,set-(void)setY:(CGFloat)y{    CGRect frame=self.frame;    frame.origin.y=y;    self.frame=frame;}-(CGFloat)y{    return self.frame.origin.y;}//width屬性的get,set-(void)setWidth:(CGFloat)width{    CGRect frame=self.frame;    frame.size.width=width;    self.frame=frame;}-(CGFloat)width{    return self.frame.size.width;}//height屬性的get,set-(void)setHeight:(CGFloat)height{    CGRect frame=self.frame;    frame.size.height=height;    self.frame=frame;}-(CGFloat)height{    return self.frame.size.height;}//size屬性的get,set-(void)setSize:(CGSize)size{    CGRect frame=self.frame;    frame.size.width=size.width;    frame.size.height=size.height;    self.frame=frame;}-(CGSize)size{    return self.frame.size;}//origin屬性的get,set,用於設定座標-(void)setOrigin:(CGPoint)origin{    CGRect frame=self.frame;    frame.origin.x=origin.x;    frame.origin.y=origin.y;    self.frame=frame;}-(CGPoint)origin{    return self.frame.origin;}@end

 

  非常簡單的分享,個人覺得可以加快一些項目的開發速度。

  需要使用的人引入我所寫的.h檔案就可以了。

  不明白的地方可以來找我,qq:1750587828   歡迎找我探討學習。

[擴充]為UIView擴充x,y,width,height,centerX,centerY,Size,Origin等屬性

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.