gpt4 book ai didi

swift - 如何从 UIBarButtonItem 中删除下划线? ( swift )

转载 作者:行者123 更新时间:2023-11-30 13:19:20 25 4
gpt4 key购买 nike

我以编程方式创建了一个 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()
}

这是我得到的结果的图像,带有下划线。

enter image description here

这是我设置按钮文本的函数。当按下时,它变成一个保存按钮。

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。显示属性检查器。文本设置应位于属性中。选择文本,单击喜欢的项目,删除下划线,将其设置为无。在此输入图像描述

Check this

但是..

让我说清楚。 Apple 添加了一项辅助功能,用户可以根据需要使用下划线标记按钮。

当用户必须要求使用该功能时,您需要一种方法来击败此功能,专门用于帮助残障人士使用他们的设备。

为什么?

使用标准按钮很可能是不可能的。如果您确实找到了一种方法来做到这一点,Apple 可能会拒绝您的应用程序,因为它破坏了旨在帮助残疾人的系统功能。

所以答案是:不要这样做。

关于swift - 如何从 UIBarButtonItem 中删除下划线? ( swift ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37912815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com