4

次のようなボタンを設定しました。

// Create facebook login button
facebookLoginButton = [[UIButton alloc] initWithFrame:CGRectMake(10, 20, 300,50)];
facebookLoginButton.autoresizingMask = UIViewAutoresizingFlexibleWidth;
//NSLog(@"facebook button view height is %f",facebookLoginButton.bounds.size.height);
//NSLog(@"facebook button view width is %f",facebookLoginButton.bounds.size.width);

UIImage *facebookButton = [[UIImage imageNamed:@"FacebookLogin"]
                           resizableImageWithCapInsets:UIEdgeInsetsMake(16,140,86,92)];
[facebookLoginButton setBackgroundImage:facebookButton forState:UIControlStateNormal];

Photoshop で 200(w)x100(h)px のボタン用の画像を作成しました。まず、これは、高さ50のログインフレームに収まるボタンのためにiphone4/5で使用される網膜画像の正しいサイズでしょうか? それ以外の幅は伸ばしたままで構いません。

第二に、以下はサンプル画像です。「resizableImageWithCapInsets:UIEdgeInsetsMake」の正しいインセットを解決できないようです。どうすればこれを解決できますか? SOからリンクされているのを見たAndroidの例以外に、これを行う方法に関するチュートリアルはどこにありますか。

ここに画像の説明を入力

4

2 に答える 2

4

ボタンのフレームを明示的に設定し、独自の画像を作成しているため、サイズ変更可能な画像は必要ありません。ボタンは 300 x 50 であるため、300 x 50 の画像を作成し (2 倍の解像度のデバイスの場合は 600 x 100 の画像と一緒に)、ボタンの背景画像をそれに設定します。

ただし、コード例も示します。実際に提供する画像について、倍解像度画像として使用するために FacebookLogin@2x.png という名前を付けると、使用する値は になりますresizableImageWithCapInsets:UIEdgeInsetsMake(0,50,0,50)。結果は次のとおりです。

ここに画像の説明を入力

于 2013-03-29T12:32:20.867 に答える
2

キャップ インセットでサイズ変更可能な画像を生成するスクリプトを作成しました。非常に便利。 https://github.com/kejinlu/capimage

于 2013-08-01T09:59:34.507 に答える