Существует много способов динамического тонирования, но проще всего начать с рисования предварительно отрисованного изображения в градациях серого, а затем нарисовать цвет оттенка сверху, используя kCGBlendModeOverlay
.Режим наложения «Наложение» работает как Photoshop и особенно полезен для тонирования.
Вот как мы рисуем настраиваемую тонированную панель навигации:
- (void)drawRect:(CGRect)rect {
[[UIImage imageNamed:@"NavBar.png"] drawInRect:rect]; // grayscale untinted version
UIColor *tint = [UIColor colorWithRed:1 green:0.5 blue:0.5 alpha:1]; // arbitrary
[tint set];
UIRectFillUsingBlendMode(rect, kCGBlendModeOverlay);
}
Цвета оттенков можно предварительно просмотреть непосредственно в Photoshop,просто создайте слой с вашим цветом в качестве сплошной заливки в режиме наложения Overlay.
Особая технология Apple для тонирования UINavigationBar
и друзей, кажется, представляет собой комбинацию оттенка с цветной заливкой плюс наложения предварительно визуализированных градиентных изображений симена, такие как «UITintedTopBarHighlightFlat.png», найденные в файле обложки системы.