2

在 iOS 6 中,您现在可以使用 setIncrementImage: 和 setDecrementImage: 方法选择自己的增量和减量图像。(在RayWenderlich上查看一个超级快速的示例)。

但是我不知道这些图像应该有什么尺寸。我尝试了 44x44 点(即正常和视网膜的 44x44 和 88x88 像素),但这会使图像拉伸。

UIStepper 控件本身具有 97 点宽度和 27 点高度。但是,每个图像都不会覆盖整个半区域(我尝试过使用全黑图像)。

有谁知道增量和减量图像应该是的确切尺寸?或者如何在 iOS 模拟器中测量点/像素距离?

谢谢你。

更新

针对 ACB 的评论:

使用以下获取默认图像大小..

NSLog([NSString stringWithFormat:@"Decrement image size: width: %f, height: %f", [self.myStepper decrementImageForState:UIControlStateNormal].size.width, [self.myStepper decrementImageForState:UIControlStateNormal].size.height]);
NSLog([NSString stringWithFormat:@"Increment image size: width: %f, height: %f", [self.myStepper incrementImageForState:UIControlStateNormal].size.width, [self.myStepper incrementImageForState:UIControlStateNormal].size.height]);

显示默认递减符号为 13x4 点,默认递增符号为 13x14 点。

使用 13x4 点图像作为自定义递减符号的快速检查按预期工作(即新符号显示的大小与原始符号相同)。这使我得出结论,使用的自定义图像保留其原始大小,除非有必要缩小它们 - 在此期间它们会变形。

4

2 回答 2

3

添加我的评论作为答案,因为这有助于解决问题。

在您的项目中,检查- (UIImage *)decrementImageForState:(UIControlState)stateUIStepper. 那应该给出默认值的大小。类似的东西[stepper decrementImageForState:UIControlStateNormal].size

于 2012-12-02T08:20:50.960 回答
3

您可以更新 UIStepper 大小,从而设置任何大小增量和减量图像。

使用以下方法设置背景图像,步进器将使用背景大小自行绘制:

- (void)setBackgroundImage:(UIImage*)image forState:(UIControlState)state

例子

    [self.stepper1 setIncrementImage:[UIImage imageNamed:@"plusIcon1.png"] forState:UIControlStateNormal];
    [self.stepper1 setDecrementImage:[UIImage imageNamed:@"minusIcon1.png"] forState:UIControlStateNormal];

    [self.stepper1 setBackgroundImage:[UIImage imageNamed:@"stepperBkg1.png"] forState:UIControlStateNormal];
    [self.stepper1 setBackgroundImage:[UIImage imageNamed:@"stepperBkgHighlighted1.png"] forState:UIControlStateHighlighted];
    [self.stepper1 setBackgroundImage:[UIImage imageNamed:@"stepperBkgDisabled1.png"] forState:UIControlStateDisabled];

与右侧未修改的步进器相比,这在左侧产生以下结果: 在此处输入图像描述

stepperBkg1@2x.png:

在此处输入图像描述

stepperBkgHighlighted1@2x.png:

在此处输入图像描述

于 2015-02-11T05:10:29.497 回答