2016-06-19 3 views
0

Я создал UIBarButtonItem программно и текст подчеркивается. Есть ли способ удалить подчеркивание?Как удалить подчеркивание из UIBarButtonItem? (Swift)

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) 
    } 
} 
+0

Vang вы добавляете изображение к вашему вопросу –

+0

Как вы создали UIBarButtonItem, пожалуйста, покажите свой код, чтобы другие, и я могу вам помочь :). – Ike10

+0

Что находится в функции 'updateEditButtonTitle'? – Ike10

ответ

0

Попробуйте этот код ..

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, скорее всего, отклонит ваше приложение, потому что оно побеждает системную функцию, предназначенную для помощи инвалидам.

Итак, ответ: не делайте этого.