我正在尝试在UIButton上设置属性字符串标题,但它似乎无法在这里工作。
[self.emailSignInButton.titleLabel setAttributedText:[[NSAttributedString alloc] initWithString:NSLocalizedString(@"LOGIN_WITH_EMAIL", nil) attributes:@{ NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle)}]];
虽然这完全正常。
[self.emailSignInButton.titleLabel setText:NSLocalizedString(@"LOGIN_WITH_EMAIL", nil)];
奇怪的是另一个按钮文本与归属文本很好。 例如
[self.emailSignupButton.titleLabel setAttributedText:[[NSAttributedString alloc] initWithString:NSLocalizedString(@"CREATE_ACCOUNT_WITH_EMAIL", nil) attributes:@{ NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle)}]]`;
知道这里发生了什么吗?
答案 0 :(得分:2)
您需要设置按钮状态的文本。 UIButton可以有几种不同的状态。
您很可能需要普通,这会为所有情况设置默认标题。
<强>的UIButton 强>
- setAttributedTitle:forState:
设置用于指定状态的样式标题。
以下是您的代码
的示例NSAttributedString *string = [[NSAttributedString alloc] initWithString:NSLocalizedString(@"LOGIN_WITH_EMAIL", nil)
attributes:@{ NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle)}]
[self.emailSignInButton setAttributedTitle:string forState:UIControlStateNormal];
的引用: