C4 степпер пользовательские изображения
Я пытаюсь использовать свои собственные изображения на C4Stepper. Я настраиваю это так
@implementation C4WorkSpace{
C4Stepper *theStepper;
C4Image *stepperBackground;
C4Image *stepperPlus;
}
-(void)setup {
//load backgroundimage
stepperBackground=[C4Image imageNamed:@"icon_zoom.png"];
stepperBackground.width=100;
//load incrementImage
stepperPlus=[C4Image imageNamed:@"icon_zoom_plus.png"];
stepperPlus.width=stepperBackground.width/2;
//setup stepper
theStepper=[C4Stepper stepper];
[theStepper setBackgroundImage:stepperBackground forState:NORMAL];
[theStepper setIncrementImage:stepperPlus forState:NORMAL];
theStepper.center=self.canvas.center;
[self.canvas addSubview:theStepper];
}
2 иконки выглядят так: Странно то, что появляется на холсте, выглядит примерно так:Есть ли какие-то особые требования для zoomStepperImages? Определенного размера или что-то?
1 ответ
Есть особые требования.
- Используемое фоновое изображение "растягивается", поэтому вам нужно создать изображение кнопки, которое можно растянуть при необходимости. Если вы посмотрите на любое из изображений кнопок (в том числе в папке Media.xcassets), вы увидите, что они являются общими. Например, выбранное фоновое изображение кнопки выглядит так:
- Точно так же изображения увеличения / уменьшения сами независимы от фоновых изображений. Обычное изображение, включенное в ту же папку, выглядит следующим образом:
- Вы можете увидеть, как значения по умолчанию
C4Stepper
класс инициализируется вC4AppDelegate.m
:
...
[C4Stepper defaultStyle].style = basicStyle;
[C4Stepper defaultStyle].tintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"lightGrayPattern"]];
[[C4Stepper defaultStyle] setDecrementImage:[C4Image imageNamed:@"decrementDisabled"] forState:DISABLED];
[[C4Stepper defaultStyle] setDecrementImage:[C4Image imageNamed:@"decrementNormal"] forState:NORMAL];
[[C4Stepper defaultStyle] setIncrementImage:[C4Image imageNamed:@"incrementDisabled"] forState:DISABLED];
[[C4Stepper defaultStyle] setIncrementImage:[C4Image imageNamed:@"incrementNormal"] forState:NORMAL];
- Итак, что вы хотите сделать, это создать изображение для вашего фона (мое растягивается, потому что посередине находятся прямые линии, которые можно растягивать по горизонтали, не выглядя растянутыми. Вы также хотите создать независимые + - изображения для сторон увеличения / уменьшения кнопки.
Как примечание, когда я создавал C4Button
На уроке мне пришлось поиграть с различными изображениями, которые я создавал, чтобы они выглядели правильно... В конце концов, мне пришлось много дорабатывать и экспериментировать, чтобы узнать, как они были отрисованы. Трудность, с которой я столкнулся, заключалась в том, что механизм рендеринга UIButton
Само по себе было немного странно, и мне пришлось научиться вписывать вещи в кнопку, чтобы они правильно отображались.