UIViewのframe.size.widthとかめんどくさいので省略する
UIViewの幅や高さにアクセスするのがめんどくさいので省略出来るようにします。
UIView+Simple.h/mという名前の
UIViewを拡張するカテゴリファイルを追加します。
//UIView+Simple.h
#import <UIKit/UIKit.h>
@interface UIView (Simple)
-(CGFloat)width;
-(CGFloat)height;
-(CGFloat)x;
-(CGFloat)y;
-(CGPoint)o;
-(CGFloat)right;
-(CGFloat)bottom;
-(void)toFront;
-(void)toBack;
-(CGSize)trueSize;
@end
//UIView+Simple.m
#import “UIView+Simple.h”
@implementation UIView (Simple)
-(CGFloat)width { return self.frame.size.width; }
-(CGFloat)height { return self.frame.size.height; }
-(CGFloat)x { return self.frame.origin.x; }
-(CGFloat)y { return self.frame.origin.y; }
-(CGPoint)o { return CGPointMake(self.width / 2, self.height / 2); }
-(CGFloat)right { return self.frame.origin.x + self.frame.size.width; }
-(CGFloat)bottom { return self.frame.origin.y + self.frame.size.height; }
-(void)toFront { [self.superview bringSubviewToFront:self]; }
-(void)toBack { [self.superview sendSubviewToBack:self]; }
-(CGSize)trueSize { CGAffineTransform t = self.transform; self.transform = CGAffineTransformIdentity; CGSize size = self.frame.size; self.transform = t; return size; }
@end
UIView+Simple.hをPCHファイルなんかで全体に読み込まれるようにしておきます。
#import “UIView+Simple.h”
そんでもって使い方。
例1.親Viewの中央に乗せる
subview.center = view.o;
[view addSubview:subview];
例2.View1の右隣にマージン14pxでView2を設置する
view2.frame = CGRectMake(view1.right + 14.0, view1.y, view2.width, view2.height);
例3.Viewを先頭に持ってくる
[view toFront]
などなどなどなど…
(便利でしょ?)
他にも省略したいものがあればココにどんどん追加すればいいのでーす♪