カスタムビュー作成時のテンプレート(AutoLayout対応)

File's Ownerに対してクラス名を指定します。
カスタムビュー作成時のテンプレート(AutoLayout対応)_1
#import <UIKit/UIKit.h>
@interface HogeView : UIView
@end

#import "HogeView.h"
@interface HogeView ()
@end

@implementation HogeView

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/

- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self commonInit];
}
return self;
}

- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super initWithCoder:aDecoder];
if (self) {
[self commonInit];
}
return self;
}

- (void)commonInit {
//対応するnibファイル名は"自身のクラス名.xib"となるように作成する
//ここでは"HogeView.xibとなり、nibファイル内のviewを取得する
NSString *className = NSStringFromClass([self class]);
UIView *subview = [[[NSBundle mainBundle] loadNibNamed:className owner:self options:0] firstObject];
[self addSubview:subview];

//AutoLayout対策
//selfのビューに対してぴったりに張り付くように設定
subview.translatesAutoresizingMaskIntoConstraints = NO;
[self addConstraint:[self pin:subview attribute:NSLayoutAttributeTop]];
[self addConstraint:[self pin:subview attribute:NSLayoutAttributeLeft]];
[self addConstraint:[self pin:subview attribute:NSLayoutAttributeBottom]];
[self addConstraint:[self pin:subview attribute:NSLayoutAttributeRight]];
}

- (NSLayoutConstraint *)pin:(id)item attribute:(NSLayoutAttribute)attribute
{
return [NSLayoutConstraint constraintWithItem:self
attribute:attribute
relatedBy:NSLayoutRelationEqual
toItem:item
attribute:attribute
multiplier:1.0
constant:0.0];
}

@end
このエントリーをはてなブックマークに追加
Translation


プロフィール

チーズくん

Author:チーズくん
個人的メモをただ羅列しています。
twitter:@cheese1038

バロメーター
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ