Tak*_*ano 4 iphone uiview categories ios
我是iPhone应用程序编程的初学者.
我真的不喜欢我们设置起源和尺寸的方式,如:
UIView *view;
CGRect frame = view.frame;
frame.origin.x = 100;
view.frame = frame;
Run Code Online (Sandbox Code Playgroud)
要么:
UIView *view;
view.frame = CGRectMake(100, view.frame.origin.y, view.frame.size.width, view.frame.size.height);
Run Code Online (Sandbox Code Playgroud)
所以我为UIView创建了一个类别:
@interface UIView (Origin)
-(void) setOriginX:(CGFloat)x;
-(void) setOriginY:(CGFloat)y;
-(void) setOriginX:(CGFloat)x y:(CGFloat)y;
-(void) setWidth:(CGFloat)w;
-(void) setHeight:(CGFloat)h;
-(void) setWidth:(CGFloat)w height:(CGFloat)h;
@end
@implementation UIView(Origin)
-(void) setOriginX:(CGFloat)x {
self.frame = CGRectMake(x, self.frame.origin.y, self.frame.size.width, self.frame.size.height);
}
...
@end
Run Code Online (Sandbox Code Playgroud)
然后我可以写:
UIView *view;
[view setOriginX 100];
Run Code Online (Sandbox Code Playgroud)
这对我来说很方便,但是有什么顾虑我不应该做这样的事情,或者直接设置起源/尺寸的任何更简单的方法吗?
我找到了一些设置在three20中定义的框架的快捷方式,非常方便定位和调整视图大小,例如:
// frame.origin.x
x
// frame.origin.y
y
//frame.origin
origin
// center
center
// frame.size
size
// center.x
centerX
// center.y
centerY
// frame.size.width
width
// frame.size.height
height
// x
left
// x + width
right
// y
top
// y + height
bottom
Run Code Online (Sandbox Code Playgroud)
他们都定制了setter和getter.
| 归档时间: |
|
| 查看次数: |
3365 次 |
| 最近记录: |