2011-01-05 9 views
15

私はObjective Cの初心者です。このボタンの背景を画像に設定するにはどうすればよいですか?(画像はすでにXCodeのresourcesフォルダ内にあります、 "blue_button.png")。また、UIButtonTypeRoundedRectではなく、ボタンの形状としてイメージを使用することをお勧めします。UIButtonの背景画像を設定する

btnClear = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain]; 

btnClear.frame = CGRectMake(115, 350, 90, 40); 

[btnClear setTitle:@"Clear" forState:UIControlStateNormal]; 

btnClear.backgroundColor = [UIColor clearColor]; 

[btnClear addTarget:self action:@selector(clearAction:) 

forControlEvents:UIControlEventTouchUpInside]; 

[self.view addSubview:btnClear]; 

私はInterface Builderでこれを行う方法を知っていますが、私はむしろXCodeでこれを行うことについて学びたいと思います。

+0

あなたはペン先 – Vjy

+0

を使用している場合はInterface Builderであなたは答えを受け入れる必要があることを行うことができますが、それはですすべての参加者に良い... – whyoz

答えて

2

[UIColor colorWithPatternImage:]を使用すると、背景色を画像に設定できます。イメージを使用するには、ボタンのスタイルをカスタムに変更する必要があります。

8

UIButton class referenceを参照してください:-setBackgroundImage:forState:

あなたが丸みを帯びた角のスタイルを使用しない場合は、タイプUIButtonTypeCustomの代わりUIButtonTypeRoundedRectを使用して、ボタンを作成します。

6

あなたは、次のUIButtonTypeCustomタイプを使用して、ボタンを宣言する必要があります:

btnClear = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; 

次にあなたがフォローを使用することができるはずです。

[btnClear setImage:[UIImage imageNamed:@"blue_button.png"] forState:UIControlStateNormal]; 

設定することができます6つの異なる制御状態があります。 。ここで

enum { 
    UIControlStateNormal    = 0, 
    UIControlStateHighlighted   = 1 << 0, 
    UIControlStateDisabled    = 1 << 1, 
    UIControlStateSelected    = 1 << 2, 
    UIControlStateApplication   = 0x00FF0000, 
    UIControlStateReserved    = 0xFF000000 
}; 

助けるかもしれないいくつかの参照です:

UIButton Class Reference

UIControl Class Reference

+0

これは動作しますが、私は現在どのようにタイトルを設定するのか不明です。私が使用していた[btnClear setTitle:@"Clear" forState:UIControlStateNormal]; Linda

+0

これを見て、それが役立つかどうかを参照してください。 http://stackoverflow.com/questions/1469474/setting-an-image-for-a-uibutton-in-code –

+0

あなたは画像を設定することも、タイルを付けることもできますが、タイトルを取得するためにできることがいくつかあります表示 –

42

はこの作品:

UIButton *btnClear = [[UIButton alloc] init]; 
btnClear = [[UIButton buttonWithType:UIButtonTypeCustom] retain]; 
btnClear.frame = CGRectMake(115, 200, 90, 40); 
[btnClear setTitle:@"Clear" forState:UIControlStateNormal]; 
[btnClear setBackgroundImage:[UIImage imageNamed:@"blue_button.png"] forState:UIControlStateNormal]; 
[btnClear addTarget:self action:@selector(clearAction:) forControlEvents:UIControlEventTouchUpInside]; 
[self.view addSubview:btnClear]; 
+3

この回答を受け入れてください... –

1

UIButtonTypeCustom- (void)setBackgroundImage:(UIImage *)image forState:(UIControlState)state方法はまた、作品にボタンを設定する必要はありませんUIButtonTypeRoundedRect

1

あなたは、インターネット上の画像でボタンの背景を設定したい場合は、SDWebImageを使用してエレガントな選択肢です:

#import <SDWebImage/UIButton+WebCache.h> 

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, y, width, height)]; 
[button setBackgroundImageWithURL:imageURL forState:UIControlStateNormal]; 
関連する問題