iOS-让结构体类型frame的属性可以直接修改
2016-01-26 13:53
351 查看
Foundation框架里面的frame是大家最熟悉不过的一个属性了,但是修改起来比较麻烦,他是CGRect类型的CGRect是结构体 结构体类型里面的某个属性如果想要修改是不允许单个修改的,必须像下面这样先取出,改一下再重新赋值回去,也就是大家常说的三部曲
如果结构体类型的东西也可以直接修改 那会有多爽?就像下面这样。
其实只要自己给UIView写个分类就好了 用这个分类来替代frame。
大概思想就是给用分类给UIView多增加几个属性x,y,height,width。这几个属性都分别实现get方法和set方法。这样以后frame就可以离开他了
写一个分类:UIView+Frame
h文件
m文件
之后在需要的地方#import"UIView+Frame.h"一下
就可以把那些UI控件什么的frame轻松的单个修改了
本文转自董铂然,点击查看原文
本文Jack Jia Dome:http://download.csdn.net/detail/jackjia2015/9418280
如果结构体类型的东西也可以直接修改 那会有多爽?就像下面这样。
其实只要自己给UIView写个分类就好了 用这个分类来替代frame。
大概思想就是给用分类给UIView多增加几个属性x,y,height,width。这几个属性都分别实现get方法和set方法。这样以后frame就可以离开他了
写一个分类:UIView+Frame
h文件
#import <UIKit/UIKit.h> @interface UIView (Frame) // 自己模仿frame写出他的四个属性 @property (nonatomic, assign) CGFloat x; @property (nonatomic, assign) CGFloat y; @property (nonatomic, assign) CGFloat width; @property (nonatomic, assign) CGFloat height; @end
m文件
#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"UIView+Frame.h"一下
就可以把那些UI控件什么的frame轻松的单个修改了
本文转自董铂然,点击查看原文
本文Jack Jia Dome:http://download.csdn.net/detail/jackjia2015/9418280
相关文章推荐
- ios扫一扫功能实现
- iOS开发系列手势、音频
- iOS-ERROR ITMS-90046: "Invalid Code Signing Entitlements.
- OC-CoreGraphics - CGGeometry.h详解
- iOS细节 开发
- iOS监听键盘的删除按键事件
- iOS 关于Presenting view controllers on detached view controllers is discouraged的警告
- [IOS 开发] 无限后台运行
- iOS中的三大事件
- iOS开发流程总结
- ios定位当前城市
- iOS Provisioning Profile(Certificate)与Code Signing详解
- iOS学习之VFL语言简介
- iOS开发时间戳与时间,时区的转换,汉字与UTF8,16进制的转换
- xcode7.2不能真机调试ios9.2.1系统设备的解决方法
- iOS取出手机里的所有图片 ---简单的方法
- iOS字符串解析---》字典
- iOS中edgesForExtendedLayout与automaticallyAdjustsScrollViewInsets
- SetNeedsLayout
- NSString的格式化大全iOS开发中高级