分类在控件中的特殊使用—添加必要的“属性”
2015-11-23 19:04
316 查看
之前我们使用runtime为控件添加了属性,现在我们不用runtime 看如何实现为某个控件添加“属性”
其实这不是真正的添加属性
我们也是给UIView添加坐标
.h文件
在.m文件中
其实这是间接的取出frame的值,进行操作。因为默认的frame是不能直接的修改他的值的,所以必须间接的操作。而且这样的话,后期我们只要是需要用到了坐标的,那么就显得非常方便了。
其实这不是真正的添加属性
我们也是给UIView添加坐标
.h文件
#import <UIKit/UIKit.h> @interface UIView (ZYExp) @property (nonatomic, assign) CGFloat x; @property (nonatomic, assign) CGFloat y; @property (nonatomic, assign) CGFloat width; @property (nonatomic, assign) CGFloat height; @end
在.m文件中
- (void)setX:(CGFloat)x { CGRect frame = self.frame; frame.origin.x = x; self.frame = frame; } - (CGFloat)x { CGFloat x =self.frame.origin.x; return 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; }
其实这是间接的取出frame的值,进行操作。因为默认的frame是不能直接的修改他的值的,所以必须间接的操作。而且这样的话,后期我们只要是需要用到了坐标的,那么就显得非常方便了。
相关文章推荐
- flex 控件的重要属性
- Delphi控件ListView的属性及使用方法详解
- web下载的ActiveX控件自动更新
- WinForm实现按名称递归查找控件的方法
- C#中父窗口和子窗口之间控件互操作实例
- Android编程之Button控件用法实例分析
- Android控件之CheckBox、RadioButton用法实例分析
- MFC中动态创建控件以及事件响应实现方法
- WinForm自定义函数FindControl实现按名称查找控件
- Android控件之ProgressBar用法实例分析
- WinForm拖拽控件生成副本的解决方法
- ASP.NET动态添加用户控件的方法
- ASP.NET的HtmlForm控件学习及Post与Get的区别概述
- WinForm实现移除控件某个事件的方法
- C#分屏控件用法实例
- 可以浮动某个物体的jquery控件用法实例
- jQuery操作表单常用控件方法小结
- C#的winform控件命名规范
- Jquery给基本控件的取值、赋值示例
- ASP.net 动态加载控件时一些问题的总结