UIStepper减小和增量图像的大小

时间:2012-12-02 01:47:25

标签: ios ios6 uistepper

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

2 个答案:

答案 0 :(得分:3)

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

在您的项目中,检查- (UIImage *)decrementImageForState:(UIControlState)state UIStepper方法返回的图片大小。这应该给出默认值的大小。类似于[stepper decrementImageForState:UIControlStateNormal].size

答案 1 :(得分:2)

您可以更新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];

与右侧未修改的步进器相比,左侧产生以下结果: enter image description here

stepperBkg1@2x.png:

enter image description here

stepperBkgHighlighted1@2x.png:

enter image description here