Прежде всего, я новичок в Swift, так что извиняюсь, если я пропущу что-то очевидное или использую неправильную терминологию.(Swift) Панель вкладок: Пользовательский выбранный образ с рендерингом asOriginal не показывает
Цель: set tab bar item selected image to custom image.
Следующая установка работает (выбранный элемент пользовательского образа):
| UITabBarController | => | UIViewController | (Установка ж/раскадровка)
class MyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let customSelectedImage = UIImage (named: "selected-image")?.withRenderingMode(.alwaysOriginal)
self.tabBarItem.selectedImage = customSelectedImage
}
}
Но эта установка не работает (выбранный элемент имеет по умолчанию синий оттенок):
| UITabBarController | => | UINavigationController | => | UIViewController | (setup w/storyboard - see here)
Аналогичный код, указанный выше, но добавленный (программно) подпрограмма UICollectionView в UIViewController.
class MyViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {
override func viewDidLoad() {
super.viewDidLoad()
let customSelectedImage = UIImage (named: "selected-image")?.withRenderingMode(.alwaysOriginal)
self.tabBarItem.selectedImage = customSelectedImage
...
//Some UICollectionView related code
...
}
}
Некоторые вещи, которые могут быть полезны:
- В сеансе отладки (see print screen) => иерархия Просмотр UI: выбранный элемент (отмечен как класса UITabBarSwappableImageView) имеет правильное собственное изображение, но оттенок по умолчанию синий. Я попытался с различными пользовательскими изображениями и выглядел так, как будто они скрыты другим (по умолчанию?) Представлением ...
- Если я изменю UITabBar.appearance(). TintColor = UIColor.red в приложении AppDelegate.swift (.. . doneFinishLaunchingWithOptions ...), то выбранный элемент имеет красный (против синего) оттенка.
Что происходит?