はじめに
コードでコントロールを生成する一例です。
メソッド名を「new」で始めるようにし Product > Analyze での判定も正常に行われるようにしています。
生成メソッド
UILabelの場合
+ (UILabel *)newLabel:(CGRect)rect text:(NSString *)text alignment:(int)alignment
{
UILabel *label = [[UILabel alloc] init];
[label setFrame:rect];
[label setText:text];
[label setFont:[UIFont systemFontOfSize:16]];
[label setTextColor:[UIColor blackColor]];
[label setTextAlignment:alignment];
[label setNumberOfLines:0];
[label setLineBreakMode:NSLineBreakByWordWrapping];
[label setBackgroundColor:[UIColor clearColor]];
return label;
}
UIButtonの場合
+ (UIButton *)newButton:(CGRect)rect title:(NSString *)title target:(id)target selector:(SEL)selector
{
UIButton *btn = [[UIButton alloc] initWithFrame:rect];
[btn setTitle:title forState:UIControlStateNormal];
[btn.titleLabel setTextAlignment:NSTextAlignmentCenter];
[btn.titleLabel setFont:[UIFont boldSystemFontOfSize:18]];
[btn.titleLabel setAdjustsFontSizeToFitWidth:YES];
[btn.titleLabel setMinimumScaleFactor:0.5];
[btn.titleLabel setLineBreakMode:NSLineBreakByTruncatingTail];
[btn setTitleColor:[UIColor darkGrayColor] forState:UIControlStateNormal];
[btn setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
[btn setBackgroundColor:[UIColor whiteColor]];
[btn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateDisabled];
[btn addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];
return btn;
}
UITextViewの場合
+ (UITextView *)newTextView:(CGRect)rect text:(NSString *)text
{
UITextView *textView = [[UITextView alloc] initWithFrame:rect];
[textView setText:text];
[textView setBackgroundColor:[UIColor clearColor]];
return textView;
}
適宜、設定内容をアレンジしてください。
他にもプロジェクトで多用するコントロールがある場合、この流れで生成系のメソッドを作り使っています。
そのプロジェクトで標準となる色、フォント、サイズにしておくと便利です。
おわりに
Storyboard使用が主流になりつつあると思いますが、コードで生成したいぜ!という場合の参考になりましたら幸いです。