2016-01-10 2 views
4

Как я могу использовать информационный свет на UIBarButtonItem?
Как использовать информационную кнопку на UIBarButtonItem

Я не хочу использовать пользовательское изображение, потому что результат не очень приятный.
Я хотел бы использовать кнопку «Информация» Apple.
Я использую Swift.

Thank you.

+0

В коде или с помощью Interface Builder? – mokagio

+0

Код, я не думаю, что это возможно по интерфейсу Builder! Спасибо – Danny182

ответ

10

Нет прямого способа создать такую ​​кнопку с помощью UIBarButtonItem APIs.

Вы можете хотя использовать настраиваемый вид, выполненный с .InfoLightUIButton, как это было предложено here:

// Create the info button 
let infoButton = UIButton(type: .infoLight) 

// You will need to configure the target action for the button itself, not the bar button itemr 
infoButton.addTarget(self, action: #selector(getInfoAction), for: .touchUpInside) 

// Create a bar button item using the info button as its custom view 
let infoBarButtonItem = UIBarButtonItem(customView: infoButton) 

// Use it as required 
navigationItem.rightBarButtonItem = infoBarButtonItem 

Вы можете оставить комментарий, если вам нужна дополнительная помощь.

0

я хотел бы сделать это легко многоразовые как это:

class InfoBarButtonItem: UIBarButtonItem { 

    init(_ type: UIButtonType = .infoLight, target: Any, action: Selector) { 
     super.init() 
     let button = UIButton(type: type) 
     button.addTarget(target, action: action, for: UIControlEvents.touchUpInside) 
     self.customView = button 
    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    }  
} 

, то вы можете использовать, как это:

navigationItem.rightBarButtonItem = 
      InfoBarButtonItem(.infoLight, target: self, action: #selector(anAction(_:))) 
Смежные вопросы