我使用属性字符串为我的按钮设置标题,并且它不会根据文本(符号)长度拉伸按钮的宽度。如果我使用普通标题[button setTitle:.....]
,它的工作完美,按钮的宽度等于文本。所以我可以看到所有的字母。
我使用font awesome从字体中抓取图像并将其设置为属性字符串。
FAKFontAwesome *userIcon = [FAKFontAwesome userIconWithSize:16];
[userIcon addAttribute:NSForegroundColorAttributeName value:[UIColor whiteColor]];
UIFont *font = [PFFont boldFontOfMediumSize];
NSAttributedString *connectString =
[[NSAttributedString alloc]
initWithString:NSLocalizedString(@"Connect", @"")
attributes:@{NSFontAttributeName:font,
NSForegroundColorAttributeName:[UIColor whiteColor]}];
NSAttributedString *user = [userIcon attributedString];
NSAttributedString *combined = [NSAttributedString attributedStringWithFormat:@"%@ %@", user, connectString];
[self.button setAttributedTitle:combined forState:UIControlStateNormal];
在这种情况下,按钮要根据给定的字符串正确拉伸。
我以编程方式设置约束,并且我对宽度没有任何限制,因此宽度应根据我想的内容自动调整大小,并且适用于通常的字符串但不适用于属性。
答案 0 :(得分:0)
答案 1 :(得分:0)
我在格式字符串尾部添加了一个空格,解决了该问题。你可以试试看!
NSAttributedString *combined = [NSAttributedString attributedStringWithFormat:@"%@ %@ ", user, connectString];
[self.button setAttributedTitle:combined forState:UIControlStateNormal];