0
1

More than 3 years have passed since last update.

【Objective-C】コード上からボタンを追加する。

Posted at

objective-cにおいて、画面にボタンを追加する場合、storybordから追加することができる。

しかし、動作などを追加する場合storybordとコードをつなげる必要があり、
ボタンを多く追加すると個人的には見づらくなってくる。

できれば、コードだけで確認がしたいため、
今回は、コード上からボタンを追加する方法についてまとめてみようと思います。

ボタンの設定

UIButton をコード上で使用することで、ボタンを追加することができます。
追加する時に、各状態になった場合のボタンのタイトル、色などを指定することができます。

    //ボタンの宣言
    UIButton *button = [[UIButton alloc]init];

    //タイトル・テキスト色・画像 通常
    [button setTitle:@"ボタン" forState:UIControlStateNormal];
    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [button setImage:[UIImage imageNamed:@"image"] forState:UIControlStateNormal];

    //タイトル・テキスト色・画像 押下中
    [button setTitle:@"押下中" forState:UIControlStateHighlighted];
    [button setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
    [button setImage:[UIImage imageNamed:@"image"] forState:UIControlStateHighlighted];

   //タイトル・テキスト色・画像 選択中
    [button setTitle:@"選択中" forState:UIControlStateSelected];
    [button setTitleColor:[UIColor blackColor] forState:UIControlStateSelected];
    [button setImage:[UIImage imageNamed:@"image"] forState:UIControlStateSelected];

    //タイトル・テキスト色・画像 無効中
    [button setTitle:@"無効" forState:UIControlStateDisabled];
    [button setTitleColor:[UIColor blackColor] forState:UIControlStateDisabled];
    [button setImage:[UIImage imageNamed:@"image"] forState:UIControlStateDisabled];

    //フォントサイズ
    [button.titleLabel setFont:[UIFont systemFontOfSize:30]];
    //背景色
    [button setBackgroundColor:[UIColor redColor]];

    //画面に追加
    [self.view addSubview:button];


枠線の設定

枠線の色は setBorderColor 、枠線の太さは setBorderWidth 、角丸の丸みは setCornerRadius 、
で指定するができます。

   //枠線の色
    [button.layer setBorderColor:[UIColor blackColor].CGColor];
    //枠線の太さ
    [button.layer setBorderWidth:2.0];
    //角丸の指定
    [button.layer setCornerRadius:5.0];

押下時の動作

ボタンを選択した時の動作を追加する場合、 -(void)関数名:(UIButton *)button で動作を指定して、
ボタン追加時に addTarget で関数を指定する必要あります。

//押下時の動作
[button addTarget:self action:@selector(button_select:) forControlEvents:UIControlEventTouchUpInside];

-(void)button_select:(UIButton *)button {
    //ボタンを選択中に変更する。
    button.selected = true;

  //ボタンを無効中に変更する
    button.enabled = false;
}

実行結果

スクリーンショット 2019-12-08 17.54.15.png

参考

https://developer.apple.com/documentation/uikit/uibutton
https://qiita.com/hatapu/items/99e6a8b19f890f0fec9f
https://iphone-tora.sakura.ne.jp/uibutton.html

0
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
0
1