我正在尝试在 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 个图标如下所示: 奇怪的是, Canvas 上出现的内容看起来像这样: zoomStepperImages 有什么特殊要求吗?一定尺寸还是什么?
最佳答案
有特殊要求。
- 使用的背景图像是“可拉伸(stretch)的”,因此您必须设计一个可以在需要时拉伸(stretch)的按钮图像。如果您查看任何按钮图像(包括 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];
- 因此,您要做的是为您的背景创建一个图像(我的图像是可拉伸(stretch)的,因为中间的东西是直线,可以水平拉伸(stretch)而不看起来被拉伸(stretch)。您还想创建独立的 + - 图像以用于增量/减少按钮的边。
请注意,当我创建 C4Button
类时,我不得不尝试我创建的各种图像以使它们“看起来”正确......最后,我必须做很多调整和试验才能了解它们是如何渲染的。我在解决这个问题时遇到的困难是 UIButton
本身的渲染机制有点奇怪,我必须学习如何将东西放入按钮中以便它们正确渲染。
关于ios - C4 步进器自定义图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19657982/