4

我似乎无法更改的大小UIStepper

  1. 在 IB 中,宽度和高度框是灰色的。
  2. 我用过initWithFrame

    UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(300, 638, 120, 80)];

    但它不会改变大小。SO上的几个帖子似乎暗示它是可变的。有什么建议吗?

4

7 回答 7

6
UIStepper* s = [UIStepper alloc] init];  
s.transform = CGAffineTransformMakeScale(0.75, 0.75);
于 2013-10-09T14:37:04.153 回答
5

You can properly update the UIStepper size without transformation.

Use the following method to set the background image and the stepper will draw itself using the background size:

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

Example

    [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];

This yields the following result on the left, compared to an unmodified stepper on the right: enter image description here

stepperBkg1@2x.png:

enter image description here

stepperBkgHighlighted1@2x.png:

enter image description here

于 2015-02-11T05:06:12.677 回答
3

我在我的步进器上尝试了变换——它确实改变了外观并对其进行了缩放,但是,+ 和 - 的图像被拉伸了(所以你必须按照原始步进器的比例缩放。

另外,要小心,因为实际增加和减少的触摸区域确实会改变 - 所以在拉伸的图像上,按钮不会沿着整个视图减少 - 所以这可能不是一个好的解决方案......

于 2013-05-08T14:58:40.120 回答
2

来自文档:

步进器的边界矩形与 UISwitch 对象的边界矩形相匹配。

听起来不像,好像可以提前。

同样在这篇博文中:

// Frame defines location, size values are ignored
UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(120, 20, 0, 0)]; 

但是你可以尝试改变它的 layer

于 2012-08-29T14:38:36.343 回答
0

您可以证明可以扩展它:

stepper.transform = CGAffineTransformMakeScale(1.75, 1.0);
于 2013-02-05T21:51:40.453 回答
0

我为它制作了一个小的自定义 UIStepper 类。不需要图像,不需要转换。自动生成的图像。 https://github.com/alelipona/VZCustomSizeStepper 在此处输入图像描述

于 2016-11-26T13:43:00.230 回答
-2

是的,您可以更改步进器的大小。

首先,右键单击情节提要->选择(打开方式)->选择(源代码)

然后在代码中找到 stepper--> find width=??? 和改变。

然后再次单击情节提要并选择作为界面构建器打开。

于 2014-11-30T23:39:59.043 回答