UIView категория для установки происхождения и размеров напрямую - PullRequest
4 голосов
/ 01 февраля 2011

Я новичок в программировании приложений для 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 Ответ

7 голосов
/ 01 февраля 2011

Я нахожу несколько ярлыков для установки кадра , определенных в трех , очень удобных для позиционирования и изменения размеров, например:

// 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

У них всех определены сеттеры и геттеры.

...