Как добавить / использовать значки по умолчанию на панели навигации
Я хочу использовать некоторые стандартные иконки iOS, т.е.
в панели навигации.
По сути, я не знаю, как вызвать изображение этого элемента (напрямую из нативной библиотеки - я знаю, как его загрузить и разместить как собственное изображение:)):
var myButton:UIButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton
myButton.addTarget(self, action: "reload", forControlEvents: UIControlEvents.TouchUpInside)
myButton.setImage(???, forState: <#UIControlState#>)
2 ответа
Ты можешь использовать UIBarButtonSystemItem
сюда:
let button = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Refresh, target: self, action: "someAction")
navigationItem.leftBarButtonItem = button
Результат для leftBarButtonItem
:
Если вы хотите установить его справа, вы можете использовать этот код:
navigationItem.rightBarButtonItem = button
Результат для rightBarButtonItem
:
Swift 3: это наиболее часто используемые опции:
Чтобы использовать пользовательское изображение с оригинальным цветом:
let customImageBarButton1 = UIBarButtonItem(UIImage(named: "someImage.png").withRenderingMode(.alwaysOriginal), style: .plain, target: self, action: #selector(handleClick))
Чтобы использовать пользовательское изображение с оттенком цвета:
let customImageBarButton2 = UIBarButtonItem(UIImage(named: "someImage.png").withRenderingMode(.alwaysTemplate), style: .plain, target: self, action: #selector(handleClick))
Или используйте кнопки системы:
let systemBarButton = UIBarButtonItem(barButtonSystemItem: .search, target: self, action: #selector(handleClick))
Затем добавьте любую из этих кнопок в навигационный элемент:
navigationItem.leftBarButtonItems = [customImageBarButton1, customImageBarButton2]
navigationItem.rightBarButtonItem = [systemBarButton]
// OR you can use `navigationItem.rightBarButtonItems = systemBarButton` for one item
Для пользовательских изображений: в качестве начального размера 22ptx22pt
изображения хорошо подходят для стандартного размера панели навигации iPhone.
В быстрой 4.3
let btnRefresh = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.refresh, target: self, action: #selector(targeted function to invoke))
//If you want icon in left side
navigationItem.leftBarButtonItem = btnRefresh
//If you want icon in right side
navigationItem.rightBarButtonItem = btnRefresh