UIViewのframe.size.widthとかめんどくさいので省略する

公開: 2015-04-26 15:37
更新: 2016-04-29 06:03

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]

などなどなどなど...

(便利でしょ?)



他にも省略したいものがあればココにどんどん追加すればいいのでーす♪



この記事をシェア
この記事にコメントする
書き込む
あっきぃ(@appstars_aki)
Web、iOSなフリーランサーです。好きなものはお寿司です。でもお寿司は高いので普段は雑草とか拾ったドングリを食べています。お仕事や意味もなく毎月お小遣いをくれる人を探してます。

お仕事の依頼や自分で作ったアプリのレビューを希望しちゃう方はaki@appstars.jpまでご連絡ください。