2

我想要一个带有两行文本的 UIButton,每行的颜色不同。有可能有这样的吗?

4

5 回答 5

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 回答
1

我能想到两种方法:

方法1(简单):将其设为图像按钮

方法 2(困难):制作一个自定义 UIButton,带有 2 个单独的 UILabel,这样您就可以为它们配置不同的颜色

要实现方法 2,您首先创建一个以 UIButton 作为超类的类。然后,覆盖- (void)drawRect方法。为了不在 SO 中重复回答,请阅读以下内容:How to override -drawrect in UIButton subclass?

于 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 回答
0

是的,当然..!!! 制作您想要显示的图像,然后将图像设置为该按钮的背景..!这很简单...

于 2013-02-27T09:16:43.560 回答
0
  1. 首先,将您的按钮设为“自定义”类型。如果您需要以编程方式执行此操作:

    UIButton* myButton = [UIButton buttonWithType: UIButtonTypeCustom];

    myButton.frame = CGRectMake (x,y,width,height);

  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 回答