2012-09-21 35 views
5

是否可以更改UIStepper的大小?当我尝试设置步进器的大小时,它似乎被忽略。更改UIStepper的大小?

UIStepper *stepper = [[UIStepper alloc] initWithFrame:CGRectMake(50,50,100,100)]; 
[self.view addSubview:stepper]; 
NSLog(@"%@",stepper); 
CGRect r = CGRectMake(50,50,100,100); 
stepper.frame = r; 
NSLog(@"%@",stepper); 

登录表示该帧是(50 50; 94 27)

是否有可能改变从94,27的大小?

回答

-1

我同意bani uppal。步进器的大小不能改变,你不能在两个自定义按钮的帮助下实现相同的功能,并可以设置你的按钮的背景图像,给出步进的印象。

+0

尺寸可以用非常干净的方式进行更改。为步进器设置背景图像,步进器的大小将变为图像的大小。 – jollyr0ger

-3

您不能更改UIStepper的大小。 UIStepper是UIView的一个子类,你可以通过一些破解来改变大小,可能是创建UIStepper的子类并重写drawRect :,我不确定这会起作用。但是这样做会让您的应用程序面临被拒绝的风险。如果您需要不同的尺寸,最好的选择是制作一个自定义组件。

+0

为什么要投票? –

12

您可以正确更新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

[email protected]

enter image description here

[email protected]

enter image description here

+0

不知道为什么这没有收到更多的票。这是一个很好的答案。这应该是被接受的答案。谢谢。 – pixbroker

+0

这里重要的一点是背景图像是设置UIStepper大小的一个。 – jollyr0ger

0

可以//在FUNC viewDidLoad

Stepper.transform = Stepper.transform.scaledBy(x: 10, y: 10) 

但使用 它会种类抵消功能尝试你自己!