iPhoneアプリを作ってる際によくUIViewを移動させることが多いです。(私だけかも知れません)
sizeを変更しないでx,y座標だけを変更する場合に
// UIViewの座標をx = 100, y = 50に動かしたい場合
UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
view.frame = CGRectMake(100, 50, view.frame.size.width, view.frame.size.height);
と書けば動きますが、めんどくさい!(と思っても4回ぐらい上の用に書いてます。)
めんどくさいので思い腰を上げた結果
Category作って多少楽になりました。
// UIView+Util.h
@interface UIView (Util)
-(void) moveBy:(CGPoint) point;
-(void) moveTo:(CGPoint) point;
@end
// UIView+Util.m
-(void) moveBy:(CGPoint)point {
self.frame = (CGRect){.origin = point, .size = self.frame.size};
}
-(void) moveTo:(CGPoint)point {
CGPoint nowPoint = self.frame.origin;
self.frame = (CGRect){.origin.x = nowPoint.x + point.x, .origin.y = nowPoint.y + point.y, .size = self.frame.size};
}
使い方は至って簡単
#import "UIView+Util.h"
UIView* view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
[view moveBy:CGPointMake(100, 50)];
あーちょっと楽になった気がするー