2015-11-17 3 views
1

У меня есть UIImage из redColor, но я хочу показать это в whiteColor, как это сделать? Вот мой код:Изменение UIColor кнопкиImage

UIImage *buttonImage = [UIImage imageNamed:@"close-button.png"]; 
UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[aButton setBackgroundImage:buttonImage forState:UIControlStateNormal]; 
aButton.frame = CGRectMake(0.0, 
          0.0, 
          buttonImage.size.width, 
          buttonImage.size.height); 

UIBarButtonItem *aBarButtonItem = 
    [[UIBarButtonItem alloc] initWithCustomView:aButton]; 

[aButton addTarget:self action:@selector(didSelectBackButton:) 
       forControlEvents:UIControlEventTouchUpInside]; 

[self.navigationItem setLeftBarButtonItem:aBarButtonItem]; 
+0

ваш вопрос не ясно, когда вам нужно изменить цвет кнопки на белом, если это нормально, иначе пользователь нажимает событие на это время –

+0

цвет по умолчанию должен быть белого цвета. –

+0

вы можете установить uiimage и цвет фона красный? –

ответ

0

Если вы хотите изменить UIColor в качестве UIImage использования этого метода внутри interface из UIImage:

- (UIImage *)imageWithColor:(UIColor *)color 
{ 
    UIGraphicsBeginImageContextWithOptions(self.size, NO, self.scale); 
    CGContextRef context = UIGraphicsGetCurrentContext(); 
    CGContextTranslateCTM(context, 0, self.size.height); 
    CGContextScaleCTM(context, 1.0, -1.0); 
    CGContextSetBlendMode(context, kCGBlendModeNormal); 
    CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height); 
    CGContextClipToMask(context, rect, self.CGImage); 
    [color setFill]; 
    CGContextFillRect(context, rect); 
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 
    return newImage; 
} 
0

Попробуйте это:

UIImageView *icon = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 150, 40)]; 
UIImage *img = [UIImage imageNamed:imageName]; 
icon.image = [img imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; 
icon.tintColor = tintColor; 
icon.contentMode = UIViewContentModeScaleAspectFill; 
+0

Я пробовал это, но его не работало, но изображение красного цвета, я проверил его в режиме отладки. Моя панель навигации окрашена в красный цвет, и мое изображение также окрашено в красный цвет, вот почему я хочу, чтобы кнопка закрытия имела белый цвет. –

+0

Вы пытались сменить навигационную панель 'tintColor'? – ShahiM

0

Просто добавьте изображение с помощью renderMode, а затем установите цвет оттенка. Также фон и любая часть изображения, которое вы не хотите отображать с использованием цвета оттенка, должны быть полностью прозрачными.

https://www.captechconsulting.com/blogs/ios-7-tutorial-series-tint-color-and-easy-app-theming

UIImage *buttonImage = [[UIImage imageNamed:@"close-button.png"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate]; 

[aButton setTintColor:[UIColor whiteColor]]; 
Смежные вопросы