web-dev-qa-db-ja.com

プログラムでボタンの背景画像をiPhoneに設定する

Xcodeでは、UIButtonの背景を画像としてどのように設定しますか?または、UIButtonに背景グラデーションを設定するにはどうすればよいですか?

26
Linda

完全なコード:

+ (UIButton *)buttonWithTitle:(NSString *)title
                       target:(id)target
                     selector:(SEL)selector
                        frame:(CGRect)frame
                        image:(UIImage *)image
                 imagePressed:(UIImage *)imagePressed
                darkTextColor:(BOOL)darkTextColor
{
    UIButton *button = [[UIButton alloc] initWithFrame:frame];

    button.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter;
    button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;

    [button setTitle:title forState:UIControlStateNormal];
    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];


    UIImage *newImage = [image stretchableImageWithLeftCapWidth:12.0 topCapHeight:0.0];
    [button setBackgroundImage:newImage forState:UIControlStateNormal];

    UIImage *newPressedImage = [imagePressed stretchableImageWithLeftCapWidth:12.0 topCapHeight:0.0];
    [button setBackgroundImage:newPressedImage forState:UIControlStateHighlighted];

    [button addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];

    // in case the parent view draws with a custom color or gradient, use a transparent color
    button.backgroundColor = [UIColor clearColor];

    return button;
}

UIImage *buttonBackground = UIImage imageNamed:@"whiteButton.png";
UIImage *buttonBackgroundPressed = UIImage imageNamed:@"blueButton.png";

CGRect frame = CGRectMake(0.0, 0.0, kStdButtonWidth, kStdButtonHeight);

UIButton *button = [FinishedStatsView buttonWithTitle:title
                                               target:target
                                             selector:action
                                                frame:frame
                                                image:buttonBackground
                                         imagePressed:buttonBackgroundPressed
                                        darkTextColor:YES];

[self addSubview:button]; 

画像を設定するには:

UIImage *buttonImage = [UIImage imageNamed:@"Home.png"];
[myButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
[self.view addSubview:myButton];

画像を削除するには:

[button setBackgroundImage:nil forState:UIControlStateNormal];
66

これは動作します

UIImage *buttonImage = [UIImage imageNamed:@"imageName.png"];
[btn setImage:buttonImage forState:UIControlStateNormal];
[self.view addSubview:btn];
17

それが誰かを助ける場合setBackgroundImageは私にとっては機能しませんでしたが、setImageは機能しました

5
RanLearns

コードなしで背景画像を設定できます!

Main.storyboardで画像を作成したいボタンを押してから、右側のtilitiesバーでattributes inspectorを押します必要な画像に背景を設定してください!左側のサポートファイルに必要な画像があることを確認してください。

3
JELLYFUN

スイフト

ボタンの画像を次のように設定します。

let myImage = UIImage(named: "myImageName")
myButton.setImage(myImage , forState: UIControlState.Normal)

ここで、myImageNameは資産カタログ内の画像の名前です。

2
Suragch

tableViewCellまたはcollectionViewCellに画像を設定するとき、これは私のために働いた:

cellForRowAtIndexPathまたはcellForItemAtIndexPathに次のコードを配置します

//セルへのポインターを取得します。 Answerは、あなたがこれを行ったことを前提としていますが、ここでは完全を期しています。

CheeseCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cheeseCell" forIndexPath:indexPath];

//ドキュメントライブラリから画像を取得し、セルに設定します。

UIImage *myCheese = [UIImage imageNamed:@"swissCheese.png"];
[cell.cheeseThumbnail setImage:myCheese forState:UIControlStateNormal];

注: xCodeはこれに夢中になったようです。 xCodeとシミュレーターの両方を再起動する必要がありましたが、正常に動作しました。

CheeseThumbnailがIBOutletとして設定されていることを前提としています...そして、テーブル/コレクションビューに十分に精通しており、これに適合することができれば幸いです。

お役に立てれば。

2
kmiklas

Swift 3.のボタンの背景画像のコード

buttonName.setBackgroundImage(UIImage(named: "facebook.png"), for: .normal)

これが誰かを助けることを願っています。

0
Dilip Tiwari

1行で、このコードで画像を設定できます

[buttonName setBackgroundImage:[UIImage imageNamed:@"imageName"] forState:UIControlStateNormal];