国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

讓結構體類型frame的某個屬性可以直接修改

2019-11-14 19:35:45
字體:
來源:轉載
供稿:網友

本篇是是本人在博客園寫的第一篇博客,前幾天因為種種原因最終決定離開混了幾年的csdn。希望在博客園有個新的開始 

Foundation框架里面的frame是大家最熟悉不過的一個屬性了,但是修改起來比較麻煩,他是CGRect類型的CGRect是結構體 結構體類型里面的某個屬性如果想要修改是不允許單個修改的,必須像下面這樣先取出,改一下再重新賦值回去,也就是大家常說的三部曲

 

如果結構體類型的東西也可以直接修改 那會有多爽?就像下面這樣。

 

其實只要自己給UIView寫個分類就好了 用這個分類來替代frame。

大概思想就是給用分類給UIView多增加幾個屬性x,y,height,width。這幾個屬性都分別實現get方法和set方法。這樣以后frame就可以離開他了

 

分類UIView+Frame 聲明

 1 // 2 //  UIView+Frame.h 3 //  SXDownLoader 4 // 5 //  Created by 董尚先 on 15/1/2. 6 //  Copyright (c) 2015年 shangxianDante. All rights reserved. 7 // 8  9 #import <UIKit/UIKit.h>10 11 @interface UIView (Frame)12 13 // 自己模仿frame寫出他的四個屬性14 @PRoperty (nonatomic, assign) CGFloat  x;15 @property (nonatomic, assign) CGFloat  y;16 @property (nonatomic, assign) CGFloat  width;17 @property (nonatomic, assign) CGFloat  height;18 19 20 @end

分類UIView+Frame 實現

#import "UIView+Frame.h"@implementation UIView (Frame)- (void)setX:(CGFloat)x{    CGRect frame = self.frame;    frame.origin.x = x;    self.frame = frame;}- (CGFloat)x{    return self.frame.origin.x;}- (void)setY:(CGFloat)y{    CGRect frame = self.frame;    frame.origin.y = y;    self.frame = frame;}- (CGFloat)y{    return self.frame.origin.y;}- (void)setWidth:(CGFloat)width{    CGRect frame = self.frame;    frame.size.width = width;    self.frame = frame;}- (CGFloat)width{    return self.frame.size.width;}- (void)setHeight:(CGFloat)height{    CGRect frame = self.frame;    frame.size.height = height;    self.frame = frame;}- (CGFloat)height{    return self.frame.size.height;}@end

 

之后在需要的地方Import一下

就可以把那些UI控件什么的frame輕松的單個修改了

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 华亭县| 巴东县| 通许县| 连南| SHOW| 富锦市| 陇川县| 福贡县| 石门县| 余江县| 泰和县| 固阳县| 桃园县| 岱山县| 唐河县| 尼木县| 林口县| 蒲城县| 襄樊市| 安国市| 德化县| 中西区| 新绛县| 监利县| 奈曼旗| 民乐县| 深州市| 兴国县| 枣强县| 日喀则市| 商都县| 江华| 定结县| 安宁市| 姜堰市| 犍为县| 江北区| 陇西县| 台东市| 铜川市| 恭城|