Проще говоря, у меня возникли проблемы с созданием ровных цветов на панели навигации и поиска. Ни один из этих элементов не прозрачен. Вот скриншот и соответствующий код.Непонятные цвета на UINavigationBar и UISearchBar
Соответствующий код:
super.viewDidLoad()
self.navigationController?.isNavigationBarHidden = false
let navigationBar = navigationController!.navigationBar
navigationBar.isTranslucent = false
let rect = CGRect(origin: CGPoint(x: 0, y:0), size: CGSize(width: 1, height: 1))
UIGraphicsBeginImageContext(rect.size)
let context = UIGraphicsGetCurrentContext()!
context.setFillColor(UIColor(red: 86.0/255.0, green: 200.0/255.0, blue: 246.0/255.0, alpha: 1.0).cgColor)
context.fill(rect)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
navigationBar.setBackgroundImage(image, for: UIBarMetrics.default)
navigationBar.shadowImage = UIImage()
searchBar.layer.borderWidth = 1
searchBar.layer.borderColor = UIColor(red: 86.0/255.0, green: 200.0/255.0, blue: 246.0/255.0, alpha: 1.0).cgColor
tblFriends.delegate = self
tblFriends.dataSource = self
tblFriends.register(UINib(nibName: "FriendCell", bundle: nil), forCellReuseIdentifier: "FriendCell")
Я вручную установив фоновое изображение навигационной панели, чтобы удалить ShadowImage между этими двумя элементами.
Цвет, о котором идет речь, ДОЛЖЕН быть 86,200,246. Но ни один элемент не является таковым, и оба они несовместимы. И снова ни один элемент не прозрачен. Что происходит?
IOS версия может влиять на вещах ; Я нахожусь на iOS10, и приведенный выше код дает мне бесцветную панель поиска по умолчанию. Удаление «self.searchBar.backgroundImage = UIImage()» делает цвет точным, но добавляет черную линию между полосами поиска и навигации. –
Над скриншотом на самом деле с моего iPhone 6s Plus работает iOS 10.0.1 .it должно быть что-то еще ... Я обновлю свой код с четким описанием ... спасибо – Joe