1

ここでは、ボタンを作成するために3つの画像を追加する必要がある状況にあります。

画像の左マスト部分、中央部分、右端部分の3つの部分があります。

画像の左側->画像ボタンの左側。の中央->画像のボタンの中央部分。右側->ボタンの右側。

真ん中のテキスト、つまりボタンのタイトルはボタンごとに異なるため、毎回異なるサイズの個別の画像を作成したくありません。提供されているボタンの幅に応じて、これらのボタンをマージして1つの完全なボタンを作成する方法があるはずです。

ここに画像の説明を入力してください

すべてが完了すると、完全なボタンは次のようになります。

あなたが私が必要なものを手に入れたことを願っています。いくつかの解決策を提案してください。

4

2 に答える 2

1

これを行うには、伸縮可能な画像を使用します。

作成する画像は、左部分、中央部分、右部分の 1 つの画像になります。

中央部分は 1 ピクセル幅で十分です。(2 つの端の間にわずかなスペースしかないボタンがどのように見えるか想像してみてください。それがあなたのイメージです。

次に、このコードを使用します...

UIImage *image = [UIImage imageNamed:@"MyImage"];

UIImage *stretchableImage = [image stretchableImageWithLeftCapWidth:10 topCapHeight:0];

[myButton setBackgroundImage:stretchableImage forState:UIControlStateNormal];

これは、その狭い画像を取得し、キャップ幅 (この例では 10) の後にピクセルを取得し、ボタンの全幅を取得するために必要な回数だけその単一のピクセルを繰り返します。

ボタンのサイズに関係なく、この 1 つの画像をどこでも再利用できます。

于 2013-01-19T08:05:50.957 に答える
-1

ボタン タイトル ラベルを使用して、背景イメージを共通に保ちながらテキストを設定できます。

例:-作品

      [btn setTitle:@"something" forState:UIControlStateNormal];
      [btn setTitle:@"something" forState:UIControlStateHighlighted];
      [btn setTitle:@"something" forState:UIControlStateDisabled];
      [btn setTitle:@"something" forState:UIControlStateSelected];

setImage:forState メソッドまたは setBackgrounImage:forState を使用して、画像をボタンに設定できます。

例:-
btnImage = [UIImage imageNamed:@"image.png"]; [btnTwo setImage:btnImage forState:UIControlStateNormal]; //OR 背景画像として設定

      [btnTwo setBackgroundImage:[UIImage imageNamed:@"name.png"] forState:UIControlStateNormal];

UIButton の font プロパティを使用して、画像で使用されている別のフォントを使用できます。

例:- btn.titleLabel.font = [UIFont systemFontOfSize:size];

  //OR 

このようなものを使用して、フォントサイズとフォントスタイルを設定することもできます。それはあなたが求めているものよりも少し多いですが、一体何なの...

      [btn.titleLabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:13.0]];

そして... 気分が悪い場合は、このコードを実装し、xCode デバッガーで出力を確認することで、使用可能なフォントのリストを見つけることができます。

コード:

      NSArray *familyNames = [[NSArray alloc] initWithArray:[UIFont familyNames]];
      NSArray *fontNames;
      NSInteger indFamily, indFont;
      for (indFamily=0; indFamily<[familyNames count]; ++indFamily)
      {
      NSLog(@"Family name: %@", [familyNames objectAtIndex:indFamily]);
      fontNames = [[NSArray alloc] initWithArray:
        [UIFont fontNamesForFamilyName:
        [familyNames objectAtIndex:indFamily]]];
      for (indFont=0; indFont<[fontNames count]; ++indFont)
      {
         NSLog(@"    Font name: %@", [fontNames objectAtIndex:indFont]);
      }
      } 
于 2013-01-19T09:44:56.197 に答える