使用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点图像作为自定义减量符号的快速检查按预期工作(即新符号显示与原始尺寸相同)。这使我得出结论,使用的自定义图像保留其原始大小,除非有必要缩小它们 - 在此期间它们会变形。
答案 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];
与右侧未修改的步进器相比,左侧产生以下结果:
stepperBkg1@2x.png:
stepperBkgHighlighted1@2x.png: