LoginSignup
1
1

More than 5 years have passed since last update.

コードでコントロールを生成する

Posted at

はじめに

コードでコントロールを生成する一例です。

メソッド名を「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使用が主流になりつつあると思いますが、コードで生成したいぜ!という場合の参考になりましたら幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1