我一直在尝试自定义通过Interface Builder添加的 UIStepper 对象的外观。在参考主题here和其他主题时,我为viewDidLoad添加了几行代码。
- (void)viewDidLoad {
[[UIStepper appearance] setIncrementImage:[UIImage imageNamed:@"stepperupImage.tif"] forState:UIControlStateNormal];
[[UIStepper appearance] setDecrementImage:[UIImage imageNamed:@"stepperdownImage.tif"] forState:UIControlStateNormal];
}
结果是死亡的蓝色矩形,如下所示。 UIStepper没有像UIButtonTypeCustom这样的UIButton属性。有人知道如何解决这个问题吗?我的部署目标是iOS 8.0。
感谢。
答案 0 :(得分:2)
要渲染原本不具有透明度的图像,请执行以下操作:
- 或 -
更改代码(docs)中的呈现模式:
UIImage *image;
image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
在您的情况下,代码如下所示:
[[UIStepper appearance] setIncrementImage:[[UIImage imageNamed:@"stepperupImage.tif"] imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
[[UIStepper appearance] setDecrementImage:[[UIImage imageNamed:@"stepperdownImage.tif"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
答案 1 :(得分:0)
UIImage *incrementImageFromFile = [UIImage imageNamed:@"plus.png"];
UIImage *incrementImage = [incrementImageFromFile imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIImage *decrementImageFromFile = [UIImage imageNamed:@"minus.png"];
UIImage *decrementImage = [decrementImageFromFile imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
// For Normal state
[stepper setIncrementImage:incrementImage forState:UIControlStateNormal];
[stepper setDecrementImage:decrementImage forState:UIControlStateNormal];
// For Highlighted state
[stepper setIncrementImage:incrementImage forState:UIControlStateHighlighted];
[stepper setDecrementImage:decrementImage forState:UIControlStateHighlighted];