Я искал способ нарисовать изображение программно какое-то время. Я нашел довольно хорошее решение:Создайте несколько UIImage с простым цветом
UIGraphicsBeginImageContextWithOptions(CGSizeMake(36, 36), NO, 0.0);
UIImage *blank = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Но недостатком этого является то, что в том же контексте, я не могу создать два или более изображений различных цветов, так что я могу использовать их в качестве фона для кнопки, например (для все три состояния). Да, я знаю, что я могу установить некоторый ресурс PNG в качестве фона UIButton
, но если бы я хотел, чтобы я не задавал этот вопрос.
Мне бы очень хотелось узнать, как создавать образы программно и использовать их, с разными цветами в качестве фона, в том же контексте или, возможно, созданный в другом контексте, но перенесенный туда, где они мне нужны.
EDIT: Для уточнения, кроме того, принять этот кусок кода:
UIButton *button = [UIButton alloc] init];
button.frame = CGRectMake(0.0, 0.0, 200, 30);
//this is pefect
button.backgroundColor = [UIColor whiteColor];
//but, what if I want to have the UIControlStateNormal/UIControlStateHighlighted/UIControlStateDisabled with different background colors ?
[button setBackgroundColor: [UIColor blackColor] forState: ?] // dont't think so, right ?
В вышеописанном случае я вынужден использовать изображение, если я хочу кнопку, чтобы выглядеть по-другому, когда нажата или отключена , конечно, фон, потому что заголовок и цвет заголовка можно легко изменить.
вы знаете UIButton имеет свойство setBackgroundColor? Почему вы создали (по моему мнению) сплошные цветные изображения? Или они не сплошные цвета? –
Почему вы не можете создавать несколько изображений из одного контекста? Получите контекст, заполните его первым цветом, получите изображение. Затем заполните контекст вторым цветом, получите новое изображение и так далее. – DrummerB
@JohnRiselvato, см. Мои правки :) – Roland