プログラムによるUIButtonの生成方法

IB(Interface Builder)を使わない場合は、
以下のように生成します。

★ボタンの生成
UIButton *ボタン名 = [UIButton buttonWithType:ボタンタイプ];
[btn setFrame:CGRectMake(x,y,dx,dy)];
[btn addTarget:self
            action:@selector(メソッド名:) forControlEvents:イベントタイプ];
[self.view addSubview:ボタン名];

★呼ばれるメソッド
-(void)メソッド名:(UIButton*)button{
    // ここに実行したい内容を記述
}

この例ではallocしていないので、releaseは不要です。
位置(x,y)にサイズ(dx,dy)のボタンタイプのボタンを設置します。
ボタンに対してイベントタイプで指定したイベント(例えばタップ)が起こると、
指定したメソッドが実行されます。

ボタンタイプについては、こちらのボタンの種類をご覧下さい。
イベントについては、こちらをご覧下さい。

具体例で見た方がよいでしょう。
基本の2パターンが重要です。viewDidLoad内に定義した例です。

通常のボタンを設置(例)

-(void)BtnPush:(UIButton*)button{
    NSLog(@"テスト成功");
}

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [btn setFrame:CGRectMake(110,210,100,40)];
    [btn setTitle:@"テストボタン" forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor redColor] forState:UIControlStateHighlighted];
    [btn addTarget:self
            action:@selector(BtnPush:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
}

実行すると、ボタンが生成されます。
TouchUpInsideなので、ボタンを押して離したときにBtnPushのメソッドが呼ばれ、コンソールに「テスト成功」と表示されます。
btn09

画像のボタンを設置(例)

-(void)BtnPush:(UIButton*)button{
    NSLog(@"テスト");
}

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    [btn setFrame:CGRectMake(110,180,100,100)];
    UIImage *img = [UIImage imageNamed:@"btn.png"];
    [btn setImage:img forState:UIControlStateNormal];
    [btn addTarget:self
            action:@selector(BtnPush:) forControlEvents:UIControlEventTouchDown];
    [self.view addSubview:btn];
}

画像のボタンが出来上がったはずです。
上記の場合、あらかじめ「btn.png」という「100×100」のサイズの画像を用意しています。
※画像の用意の仕方はこちらを参照して下さい。
btn10

コメントを残す

サブコンテンツ

このページの先頭へ