Я не могу установить barTintColor в UINavigationBar для успешного удаления
В UINavigationBar есть странная вещь для iOS 7. Если вы попытаетесь установить это barTintColor
собственность на [UIColor clearColor]
или любой цвет с альфа = 0, он полностью игнорирует это значение. Например, если вы напишите:
[[navigationBar setBarTintColor:[UIColor clearColor]];
Это не уважает "чистую" часть вообще. Тот же результат с colorWithRed:green:blue:alpha
,
Но самое интересное, если вы установите translucent
собственность на NO
, тогда он примет цвет, который вы указали, НО с альфа 1. Так что если я укажу colorWithRed:1 green:0 blue:0 alpha:0
он будет установлен в чисто красный цвет с альфа как 1.
Как мне этого добиться? Есть ли какое-нибудь возможное решение сделать его полностью невидимым barTintColor
хотя требует хакерских методов?
3 ответа
Если вы хотите чистый контроллер навигации, попробуйте установить фоновое изображение контроллера навигации для использования чистого файла PNG (1x1 прозрачный, без цвета).
Это работает для меня
navigationBar.translucent = true
navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
Мой ответ очень похож на ответ Брайана с предложением Дэвида, хотя это не то же самое. Я публикую это, чтобы сэкономить время для всех, кто пытается это сделать.
// Forcing transparent background.
navigationBar.translucent = YES;
navigationBar.backgroundImage = [[UIImage alloc] init];
Важно установить translucent
в YES
, В противном случае полоса будет черной. Я проверял это на iOS 7.1.1.