1

我正在尝试在 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 个图标看起来像这样:icon_zoom_Plus.png图标缩放.png 奇怪的是,画布上出现的东西看起来像这样:!截屏 zoomStepperImages 有什么特殊要求吗?一定的尺寸还是什么?

4

1 回答 1

2

有特殊要求。

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

在此处输入图像描述

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

在此处输入图像描述

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

于 2013-10-29T17:47:22.300 回答