C4步进自定义图像

时间:2013-10-29 12:16:38

标签: ios 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];  
}

这两个图标如下所示:icon_zoom_Plus.png icon_zoom.png 奇怪的是,画布上显示的内容如下所示:!screenshot zoomStepperImages有什么特殊要求吗?一定的尺寸或什么?

1 个答案:

答案 0 :(得分:2)

有特殊要求。

  • 使用的背景图像是“可伸缩的”,因此您必须设计一个可以根据需要拉伸的按钮图像。如果您查看任何按钮图像(包括Media.xcassets文件夹中),您将看到它们是通用的。例如,所选按钮背景图像如下所示:

enter image description here

  • 类似地,递增/递减图像本身独立于背景图像。包含在同一文件夹中的incrementNormal图像如下所示:

enter image description here

  • 您可以在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本身的渲染机制有点奇怪,我必须学习如何将东西放入按钮中以便正确渲染。