我想在我的视图中显示邮件ID,以便单击邮件ID应打开邮件编辑器视图。iPhone:如何在按钮中显示带下划线的文字?
我想显示下划线的按钮文本以显示它是一个超链接,并且按钮单击事件可以调用邮件编辑器视图。目前,我无法显示加下划线的按钮文字。
我想在按钮上方放置一个标签,并调整标签属性以获得带下划线的文本,但这并不起作用。
有没有不同的方式来获得我想要的外观和行为?
我想在我的视图中显示邮件ID,以便单击邮件ID应打开邮件编辑器视图。iPhone:如何在按钮中显示带下划线的文字?
我想显示下划线的按钮文本以显示它是一个超链接,并且按钮单击事件可以调用邮件编辑器视图。目前,我无法显示加下划线的按钮文字。
我想在按钮上方放置一个标签,并调整标签属性以获得带下划线的文本,但这并不起作用。
有没有不同的方式来获得我想要的外观和行为?
另一种替代方法是设置按钮的图像。创建一个显示适当文本的图像,该按钮将显示该文本而不是文本。
我同意扎克强调文本是多余的,违反了接口语法。您首先在链接文本中标明文字,以表明它们具有按钮之类的行为。如果文本已经在按钮中,则不需要将其强调为表示它的行为类似于按钮,因为用户已经期望响应于点击它的动作。
如果你有翻译,@ TechZen,你必须为每种语言准备图像? – new2ios 2015-04-30 12:52:49
要做你想做的事,你需要使用CGContextStrokePath()在UILabel的CGLayer上绘制下划线。
这就是说,我会挑战你重新考虑你的设计选择。使按钮文本显示为超链接对于Windows桌面应用程序来说是合理的(例如,使用LinkLabel
)。但是,iPhone OS具有不同的用户界面惯例,因为它的屏幕更小,并且需要更大的目标以适应触摸输入。
这个问题的“Cocoa Touch”方法是使用UITableView显示邮件ID列表。为每行提供适当的附件按钮。例如,您可以使用UITableViewCellAccessoryDetailDisclosureButton
或UIButton
与buttonType
的UIButtonTypeContactAdd
)。附件按钮事件处理程序然后将调出邮件编辑器。
祝你好运,快乐的编码!
那么,如果你想提供一个文本块内的网站链接?用户需要一些视觉指示文字是一个链接,并将他们带到某个地方。
蓝色加下划线的超链接外观是预期的规范,但明白这是PC方式。那么iPhone的方式是什么?
我在过去使用了一个自定义按钮,没有背景等和蓝色文本,虽然没有下划线,它确实允许可点击文本。
很想知道别人怎么做....
Swift 3。2
if let title = button.titleLabel?.text, title != "" {
let attributeString = NSMutableAttributedString(string: title)
attributeString.addAttribute(NSAttributedStringKey.underlineStyle, value: 1, range: NSMakeRange(0, title.count))
button.titleLabel?.attributedText = attributeString
}
目标C
NSString *tem = self.myButton.titleLabel.text;
if (tem != nil && ![tem isEqualToString:@""]) {
NSMutableAttributedString *temString=[[NSMutableAttributedString alloc]initWithString:tem];
[temString addAttribute:NSUnderlineStyleAttributeName
value:[NSNumber numberWithInt:1]
range:(NSRange){0,[temString length]}];
self.myButton.titleLabel.attributedText = temString;
}
由于iOS的6.0你可以使用NSAttributedString
与UIButton
。
//create an underlined attributed string
NSAttributedString *titleString = [[NSAttributedString alloc] initWithString:@"Title" attributes:@{NSUnderlineStyleAttributeName : @(NSUnderlineStyleSingle | NSUnderlinePatternSolid)}];
//use the setAttributedTitle method
[yourButton setAttributedTitle:titleString forState:UIControlStateNormal];
要做到这一点在Interface Builder
增加对@海德尔的答案截图。
注意:只有突出显示的文本才会加下划线,所以如果需要,您可以强调一个特定的范围。
我结束了在代码中强调也无妨,只是因为我无法得到大胆连同下划线工作的某些原因。可能是因为我使用的字体,谁知道。
@IBOutlet weak var underlineButton: UIButton! {
didSet {
let attrs = [
NSFontAttributeName : UIFont(name: "MyCustomFont-Bold", size: 19.0)!,
NSUnderlineStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue,
NSForegroundColorAttributeName : UIColor.orangeColor()
]
let attrString = NSMutableAttributedString(string: "Button text", attributes:attrs)
underlineButton.setAttributedTitle(attrString, forState: .Normal)
}
}
以下是如何在故事板(XCode 6)中执行相同操作。 http://stackoverflow.com/a/26930512/309046 – satish 2015-03-03 09:39:01