作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我以编程方式创建了一个 UIBarButtonItem,并且文本带有下划线。有没有办法去掉下划线?
let editButton = UIButton.init(type: .Custom)
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.tabBarController?.title = "General Information"
editButton.setTitleColor(UIColor.blueColor(), forState: .Normal)
editButton.addTarget(self, action: #selector(editButtonPressed(_:)), forControlEvents: .TouchUpInside)
editButton.frame.size = CGSize(width: 60, height: 30)
editButton.titleLabel?.adjustsFontSizeToFitWidth = true
let barButtonItem = UIBarButtonItem.init(customView: editButton)
self.tabBarController?.navigationItem.setRightBarButtonItem(barButtonItem, animated: true)
updateEditButtonTitle()
self.navigationController!.navigationItem.backBarButtonItem?.tintColor = UIColor.blackColor()
}
这是我得到的结果的图像,带有下划线。
这是我设置按钮文本的函数。当按下时,它变成一个保存按钮。
func updateEditButtonTitle() {
if let button = self.tabBarController?.navigationItem.rightBarButtonItem?.customView as? UIButton {
var title = ""
editButton.backgroundColor = UIColor.lightGrayColor().colorWithAlphaComponent(0.55)
editButton.layer.cornerRadius = 7.0
if isInEditMode {
title = "Save"
editButton.setTitleColor(UIColor.redColor(), forState: .Normal)
editButton.backgroundColor = UIColor.lightGrayColor().colorWithAlphaComponent(0.5)
editButton.layer.cornerRadius = 7.0
editButton.frame.size = CGSize(width: 60, height: 30)
} else {
editButton.setTitleColor(UIColor.blueColor(), forState: .Normal)
title = "Edit"
}
button.setTitle(title, forState: .Normal)
}
}
最佳答案
试试这个代码..
var attrStr: NSMutableAttributedString = yourBtnHere.attributedTitleForState(.Normal).mutableCopy()
//or whatever the state you want
attrStr.enumerateAttributesInRange(NSMakeRange(0, attrStr.characters.count), options: .LongestEffectiveRangeNotRequired, usingBlock: {(attributes: [NSObject : AnyObject], range: NSRange, stop: Bool) -> Void in
var mutableAttributes: [NSObject : AnyObject] = [NSObject : AnyObject](dictionary: attributes)
mutableAttributes.removeObjectForKey(.AttributeName)
attrStr.setAttributes(mutableAttributes, range: range)
})
对于检查员/IB:选择您的 UIButton。显示属性检查器。文本设置应位于属性中。选择文本,单击喜欢的项目,删除下划线,将其设置为无。在此输入图像描述
但是..
让我说清楚。 Apple 添加了一项辅助功能,用户可以根据需要使用下划线标记按钮。
当用户必须要求使用该功能时,您需要一种方法来击败此功能,专门用于帮助残障人士使用他们的设备。
为什么?
使用标准按钮很可能是不可能的。如果您确实找到了一种方法来做到这一点,Apple 可能会拒绝您的应用程序,因为它破坏了旨在帮助残疾人的系统功能。
所以答案是:不要这样做。
关于swift - 如何从 UIBarButtonItem 中删除下划线? ( swift ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37912815/
我是一名优秀的程序员,十分优秀!