0

表示に使用する正確なサイズのボタンをフォトショップで作成しました。

IB で RRB を作成し、背景画像をボタン .png に設定しました。ただし、これは正しく表示されません。.png ボタンと IB が提供するボタンの間に、特に半径が異なる必要がある角に白い境界線があります。IBのさまざまな設定をすべて試してみましたが、消えませんでした。

ただし、.png を背景画像に設定する代わりに画像に設定すると、完璧に見えます (画像と背景画像の違いは何ですか?)。ただし、.pngが背景画像に設定されている場合でも、.pngが背景ではなく画像に設定されている場合、ボタンテキストを表示することはできません。繰り返しますが、IBでさまざまな設定をすべて設定しようとしましたが、テキストを表示できません。

私は何を間違っていますか、それを機能させるにはどうすればよいですか?

プログラムでボタンとテキストを作成できることはわかっていますが、IB を使用して機能させることができる理由を理解したいと思います。

編集:タイプをカスタムに変更しましたが、まだ正しく表示されません。私が投稿した画像を参照してください。テキストのない画像は、背景ではなく画像に .png を設定した場合の表示方法と外観です。2 つ目は、背景画像を .png に設定し、ボタンのタイプをカスタムに設定した場合の外観です。3 つ目は、.png に設定された背景画像で、丸みを帯びた四角形のタイプです。ここに画像の説明を入力 ここに画像の説明を入力 ここに画像の説明を入力

4

3 に答える 3

2

ボタンの種類を使用 = UIButtonTypeCustom

于 2012-07-19T15:37:37.487 に答える
0

角丸長方形のボタン タイプを使用するのではなく、ボタン タイプを UIButtonTypeCustom に設定します。これは、指定した画像の周りにボタンをラップするという点で、必要に応じて実行されます。

于 2012-07-19T15:38:04.837 に答える
0

ボタンの背景画像のサイズが と同じではないようUIButtonです。

iOS は「ストレッチ可能なイメージ」と呼ばれるものをサポートしており、イメージのどの部分をストレッチするかを定義できます。残念ながら、これは Interface Builder では実行できません。コードでは、次のようにできます。

-(void)viewDidLoad
{
    [super viewDidLoad];
    UIImage *stretchableImage = [[someButton backgroundImageForState:UIControlStateNormal] stretchableImageWithLeftCapWidth:5 topCapHeight:5];
    [someButton setBackgroundImage:stretchableImage forState:UIControlStateNormal];
}

重要: stretchableImageWithLeftCapWidth:topCapHeight:iOS 5 では非推奨ですが、iOS 4 もサポートする必要がある場合の唯一の解決策です。iOS 5 しか使えない場合は、resizableImageWithCapInsets:.

于 2012-07-19T16:18:00.767 に答える