2

I want to have a UIButton with two lines of text, with each line in different color. Is it possible to have like that ?

4

5 に答える 5

1

私が考えることができる2つのアプローチがあります:

アプローチ1(簡単):イメージボタンにする

アプローチ 2 (ハード) : 2 つの個別の UILabel を使用してカスタム UIButton を作成し、それらに異なる色を設定できるようにします。

アプローチ 2 を実現するには、最初に UIButton をスーパークラスとして持つクラスを作成します。次に、メソッドをオーバーライドします- (void)drawRect。SOで回答を繰り返さないために、これを読んでください: UIButtonサブクラスで-drawrectをオーバーライドする方法は?

于 2012-06-20T10:13:20.997 に答える
1
In Swift

var main_string = "Hello World"
var string_to_color = "World"
var range = (main_string as NSString).rangeOfString(string_to_color)
var attributedString = NSMutableAttributedString(string:main_string)
        attributedString.addAttribute(NSForegroundColorAttributeName, value: appSingleton.appRedColor , range: range)
self.celciusButton.setAttributedTitle(attributedString, forState: UIControlState.Normal)
于 2015-08-11T01:33:39.227 に答える
1

こんにちは、この回答はiOS 6以上にのみ適用されます...

これを達成するには、ios 6の属性付きテキストを使用してください...

NSString* infoString=@"This is an example of Attributed String";

    NSMutableAttributedString *attString=[[NSMutableAttributedString alloc] initWithString:infoString];
    NSInteger _stringLength=[infoString length];

    UIColor *_red=[UIColor redColor];
    UIFont *font=[UIFont fontWithName:@"Helvetica-Bold" size:20.0f];
    [attString addAttribute:NSFontAttributeName value:font range:NSMakeRange(0, _stringLength)];
    [attString addAttribute:NSForegroundColorAttributeName value:_red range:NSMakeRange(0, _stringLength/2)];
    [self.attribButton setAttributedTitle:attString forState:UIControlStateNormal];
    self.attribButton.titleLabel.numberOfLines=2; 

このようにしてみてください...

于 2013-04-23T14:16:39.353 に答える
0

はい確かに..!!! 正確に表示したい画像を作成し、その画像をそのボタンの背景として設定します。簡単だ...

于 2013-02-27T09:16:43.560 に答える
0
  1. まず、「カスタム」タイプのボタンを作成します。プログラムでそれを行う必要がある場合:

    UIButton* myButton = [UIButton buttonWithType: UIButtonTypeCustom];

    myButton.frame = CGRectMake (x,y,幅,高さ);

  2. ラベルを作成します。

    UILabel* line1 = [[UILabel alloc] initWithFrame:CGRectMake(0,0,buttonWidth,buttonHeight/2)];

    UILabel* line2 = [[UILabel alloc] initWithFrame:CGRectMake(0,buttonHeight/2,buttonWidth,buttonHeight/2)];

  3. 必要なテキストの色を割り当てます。

    line1.textColor = [UIColor blueColor];

    line2.textColor = [UIColor redColor];

  4. 次に、ラベルをボタンに追加し、ボタンをビューに追加します。

    [myButton addSubview:line1];

    [myButton addSubview:line2];

    [self.view addSubview:myButton]; // ボタンをプログラムで作成した場合のみ

于 2014-04-28T21:19:03.620 に答える