Мне удалось изменить цвет navigation bar
, но цвет кнопок по-прежнему черный. Есть ли способ изменить цвет кнопок? См. изображение ниже.
ОБНОВЛЕНИЕ: Извините, пришлось удалить изображение из-за проблем с копированием.
Мне удалось изменить цвет navigation bar
, но цвет кнопок по-прежнему черный. Есть ли способ изменить цвет кнопок? См. изображение ниже.
ОБНОВЛЕНИЕ: Извините, пришлось удалить изображение из-за проблем с копированием.
Это невозможно без вашего пользовательского изображения.
но вы должны изменить цвет оттенка, как только создадите навигационный контроллер:
UIImagePickerController *pickerImg = [[UIImagePickerController alloc] init];
pickerImg.navigationBar.barStyle = UIBarStyleBlackOpaque; // Or whatever style.
// or
pickerImg.navigationBar.tintColor = [UIColor whateverColor];
вы можете скрыть панель навигации и создать настраиваемую панель навигации с помощью изображения и разместить на ней 2 кнопки. Делая это, вы можете изменить изображение/цвет кнопок, а также вид изображения также в соответствии с вашими требованиями.
для скрытия панели навигации:
self.navigationController.navigationBarHidden=YES;
затем в XIB: создайте представление высотой 44, поместите на него изображение и поместите на него 2 кнопки и 1 метку.
Надеюсь, это решит вашу проблему.
@Ankit Вы можете попробовать получить подвиды с панели навигации, а затем установить нужный цвет. Я использовал этот подход, чтобы установить цвет кнопки отмены в строке поиска. Размер кнопки отмены составляет 48 * 30, и вы можете использовать массив подвидов, чтобы установить желаемый цвет. Я не уверен, но это может помочь. Ниже приведен код, который я использовал для установки цвета кнопки отмены в строке поиска.
NSArray *arrySearchSubviews=[searchBarFrnds subviews];
for (UIButton *btn in arrySearchSubviews)
{
CGRect rect=btn.frame;
NSLog(@"width %f",rect.size.width);
NSLog(@"height %f",rect.size.height);
if (rect.size.width==48 )
{
[btn setTintColor:[UIColor colorWithRed:0 green:0.403f blue:0.4f alpha:1.0f]];
}
}
Если вы хотите изменить цвет кнопок, которые отображаются во всех представлениях, таких как тот, который вы надеетесь изменить, просто используйте следующее:
UIBarButtonItem *searchBarButton = [UIBarButtonItem appearanceWhenContainedIn:[UISearchBar class], nil];
[searchBarButton setTintColor:[UIColor colorWithRed:138.0/255.0 green:183.0/255.0 blue:64.0/255.0 alpha:1.0]];
Я надеюсь, что это поможет вам!
Шаг 1:
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.delegate = self;
[self presentViewController:picker animated:YES completion:NULL];
Шаг 2:
/* Status bar color */
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
/* Left button */
navigationController.navigationBar.tintColor = [UIColor blackColor];
/* Right button color */
navigationController.navigationBar.topItem.rightBarButtonItem.tintColor = [UIColor blackColor];
Вы можете добиться желаемых настроек с помощью новых UIAppearance
API, начиная с iOS 5 и более поздних версий. В этом учебнике показано, как это сделать.
Вы должны определить кнопку UIButtonTypeCustom для вашего BarButtonItem.
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
UIBarButtonItem *yourBarButton = [[UIBarButtonItem alloc] initWithCustomView:button];
Для получения дополнительной информации взгляните на этот пост: UIBarButtonItem с цветом?
Если вы не против использовать один и тот же стиль во всем приложении, используйте внешний вид, как предложил @Bourne:
let font = UIFont(name:"Montserrat-Bold", size:16)!
let attributes: LTDictStrObj = [
NSForegroundColorAttributeName: UIColor.whiteColor(),
NSFontAttributeName: font,
]
UIBarButtonItem.appearance().setTitleTextAttributes(attributes, forState: UIControlState.Normal)
Вы также можете изменить цвет фона панели навигации, если вы используете белый цвет, как я:
picker.navigationBar.barTintColor = .redColor()
Один лайнер с использованием UIAppearance:
[[UINavigationBar appearanceWhenContainedInInstancesOfClasses:@[[UIImagePickerController class]]] setTintColor:[UIColor redColor]];
UIAppearance
приходит на ум... - person Pfitz   schedule 17.09.2012