Цвет кнопки кнопки панели навигации отличается при проектировании через xib xcode5
Моя проблема в том, что я создаю кнопку навигационной панели с помощью xib, но когда я собираюсь установить изображение на кнопку бар, тогда цвет изображения отличается как изображение orignal.
Вот мое изображение orignal.
![Here is my orignal image]()
И после добавления этого изображения в элемент панели навигации, чем это выглядит как
![Aafter adding that image on navigation bar]()
Ответы
Ответ 1
Во-первых, я согласен с комментарием @Desdenova.
Два изображения не выглядят одинаково, у каждого есть прямые углы прямого угла для каждой линии, а другие округлены.
Убедитесь, что вы используете правильный файл изображения.
Если это так, устрашающе, проблема решена без отклонения от вашей реализации xib
. Если нет, просто сделайте это программно (согласно коду @shankars).
Но еще одно замечание: у меня возникли проблемы с настройкой файлов пользовательских изображений на кнопки, где изображение получилось измененным... не забудьте использовать UIImageRenderingModeAlwaysOriginal
при настройке изображения на кнопку:
Objective-C:
[button setImage:[[UIImage imageNamed:@"imageName.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
Swift:
someBarButtonItem.image = UIImage(named: "yourPictureName")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
Swift 3:
someBarButtonItem.image = UIImage(named:"myImage")?.withRenderingMode(.alwaysOriginal)
Ответ 2
Это пример рабочего кода
UIImage *myImage = [UIImage imageNamed:@"myImageFile.png"];
myImage = [myImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithImage:myImage style:UIBarButtonItemStylePlain target:self action:@selector(menuObject:)];
self.navigationItem.leftBarButtonItem = menuButton;
Ответ 3
Вы можете создать навигационную панель программно вместо прямой раскадровки, это не повлияет на исходный цвет изображения
self.navigationItem.leftBarButtonItem=[self backButton];
- (UIBarButtonItem *)backButton
{
UIImage *image = [UIImage imageNamed:@"image.png"];
CGRect buttonFrame = CGRectMake(0, 0, image.size.width, image.size.height);
UIButton *button = [[UIButton alloc] initWithFrame:buttonFrame];
//[button addTarget:self action:@selector(backButtonPressed) forControlEvents:UIControlEventTouchUpInside];
[button setImage:image forState:UIControlStateNormal];
UIBarButtonItem *item= [[UIBarButtonItem alloc] initWithCustomView:button];
return item;
}
Ответ 4
Поскольку раскадровка ios7 имеет проблему, я столкнулся с проблемой, как показано ниже.
установите цвет оттенка как цвет изображения, который он работает.
![enter image description here]()
Ответ 5
Вам также нужно установить цвет оттенка - который работал на меня -
Вы можете сгенерировать UIBarButtonItem через код следующим образом:
#define setTurqoiseColor [UIColor colorWithRed:68.0f/255.0f green:181.0f/255.0f blue:223.0f/255.0f alpha:1.0]
UIBarButtonItem *menuButton = [[UIBarButtonItem alloc] initWithImage:buttonImage style:UIBarButtonItemStyleBordered target:self action:@selector(toggleMenu)];
menuButton.tintColor = setTurqoiseColor;