用于直接设置原点和大小的 UIView 类别
Posted
技术标签:
【中文标题】用于直接设置原点和大小的 UIView 类别【英文标题】:UIView category for setting origins and sizes directly 【发布时间】:2011-02-01 10:55:32 【问题描述】:我是 iPhone 应用程序编程的初学者。 我真的不喜欢我们必须设置原点和大小的方式,例如:
UIView *view;
CGRect frame = view.frame;
frame.origin.x = 100;
view.frame = frame;
或:
UIView *view;
view.frame = CGRectMake(100, view.frame.origin.y, view.frame.size.width, view.frame.size.height);
所以我为 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
然后我可以写:
UIView *view;
[view setOriginX 100];
这对我来说很方便,但是有没有担心我不应该做这样的事情,或者有什么更简单的方法可以直接设置原点/大小?
【问题讨论】:
【参考方案1】:我找到了一些设置框架defined in 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
它们都定义了 setter 和 getter。
【讨论】:
以上是关于用于直接设置原点和大小的 UIView 类别的主要内容,如果未能解决你的问题,请参考以下文章
Swift - UIView 原点设置为 140 时返回 0
在 UIView 中动态居中对齐多个不同大小的 UIButton