UITabBarItem selectedImageTintColor. Как найти цвет для установки в качестве оттенка

Я использовал свойство selectedImageTintColor в моем TabBarController, чтобы изменить цвет выбранного TabBarItem.

Проблема в том, что цвет, который вы установили как tintcolor, не является последним примененным цветом до его изменения (он получает какой-то градиент)

У меня вопрос: можно ли найти цвет, который будет применяться как tintcolor, чтобы получить окончательный цвет, который вам известен?

Например, я хочу, чтобы мой выбранный элемент имел окончательный цвет

[UIColor colorWithRed:(154.0/255.0) green:(213.0/255.0) blue:(0.0) alpha:(1.0)

Какие цвета RGB я должен установить для свойства selectedImageTintColor?


person pdrcabrod    schedule 21.01.2013    source источник
comment
Если я понимаю, вы, вероятно, хотите предотвратить градиент. Попробуйте это stackoverflow.com/questions/1355480/   -  person Popeye    schedule 21.01.2013
comment
Вы это сделали, но я предпочитаю противодействовать градиенту, если это возможно.   -  person pdrcabrod    schedule 21.01.2013


Ответы (2)


Как уже было сказано Ankit, лучше всего использовать

- (void)setFinishedSelectedImage:(UIImage *)selectedImage withFinishedUnselectedImage:(UIImage *)unselectedImage

Тем не менее, я понимаю, что вам нужен UIImage, чтобы это сделать. Если ваш дизайнер не может предоставить вам это, вы можете нарисовать свой собственный UIImage в коде как таковом.

- (UIImage *)imageWithColor:(UIColor *)color {
    CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
    UIGraphicsBeginImageContext(rect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, rect);

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return image;
}

Очевидно, что этот код не рисует вам градиент, но он показывает основы рисования UIImage. Я бы посмотрел на учебник, подобный следующему, чтобы узнать, как нарисовать именно тот градиент, который вам нужен:

http://www.raywenderlich.com/2033/core-graphics-101-lines-rectangles-and-gradients

person JonB    schedule 28.01.2013

iOS не предоставляет API для изменения градиента цвета оттенка. Однако в документации Apple предлагается использовать метод setFinishedSelectedImage: withFinishedUnSelectedImage :.

см. больше в справочнике UITabBarItem

person Ankit Kumar Gupta    schedule 21.01.2013