在应用程序中忽略在Interface Builder中设置为UIButton的归属标题属性

时间:2015-05-15 17:40:28

标签: ios xcode uibutton nsattributedstring

我有一个UIButton,我在Interface Builder中给出了一个属性标题:它有一个特定的字体,字符串的一部分是不同的颜色。

当我加载我的应用时,颜色会保留,但应用会将字体恢复为系统默认值...

有人经历过这种情况或知道修复方法吗?试图避免在代码中设置属性标题。

如果重要,我使用的字体是Open Sans,它在我在代码中指定字体的其他标签上正确显示。

4 个答案:

答案 0 :(得分:2)

您是否尝试在更改按钮的字体之前选择文字?example

答案 1 :(得分:0)

一周前我遇到了同样的问题。我也在使用Open Sans。但是每当我尝试构建时,我都会遇到一个无处可寻的编译错误。

无论如何..我只是在按钮上添加了一个标签,并按照我想要的方式进行配置。

答案 2 :(得分:0)

 NSMutableParagraphStyle *style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
    [style setAlignment:NSTextAlignmentCenter];
    [style setLineBreakMode:NSLineBreakByWordWrapping];

    NSDictionary *dict1 = @{NSFontAttributeName:[UIFont fontWithName:@"Varela Round" size:15.0f],
                            NSForegroundColorAttributeName:[UIColor whiteColor],
                            NSParagraphStyleAttributeName:style};
    NSDictionary *dict2 = @{NSFontAttributeName:[UIFont fontWithName:@"Varela Round"  size:10.0f],
                            NSForegroundColorAttributeName:[UIColor whiteColor],
                            NSParagraphStyleAttributeName:style};

    NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] init];
    [attString appendAttributedString:[[NSAttributedString alloc] initWithString:@"Expensed\n"    attributes:dict1]];
    [attString appendAttributedString:[[NSAttributedString alloc] initWithString:@"Tap to edit"      attributes:dict2]];
    [cell.expenseTripButton setAttributedTitle:attString forState:UIControlStateNormal];
    [[cell.expenseTripButton titleLabel] setNumberOfLines:0];
    [[cell.expenseTripButton titleLabel] setLineBreakMode:NSLineBreakByWordWrapping];

答案 3 :(得分:-1)

我遇到了同样的问题,但是UIButton,我的UILable已经改为新的字符串,我确定它在Interface builder上有所改变。但是构建它时它仍然是旧字符串。 我在源代码中打开了Interface builder。搜索旧字符串,它仍然在那里。刚删除它来解决问题。 (我不知道为什么会这样)。也许你应该开IB以确保。

希望它对你有所帮助。