我已将步进器的比例设置如下:
m_stepper1.transform = CGAffineTransformMakeScale(0.6, 0.6);
之后,如果我尝试垂直旋转,它不会对步进器产生任何影响。它没有旋转。我使用以下代码进行轮换:
m_stepper1.transform = CGAffineTransformMakeRotation(M_PI / 2.0);
请有人帮我解决这个问题。
答案 0 :(得分:2)
您不需要额外的视图来完成此任务,您只需要一个concat转换。您执行此操作的方式会在添加新变换之前重置上一个变换。这将添加两者。
[stepper setTransform:CGAffineTransformConcat(CGAffineTransformMakeRotation(M_PI_2), CGAffineTransformMakeScale(0.6, 0.6))];
但是,如果您想一次进行一次变换,则应使用其中一个将输入变换作为参数的变换。这也将产生您正在寻找的结果。
[stepper setTransform:CGAffineTransformMakeRotation(M_PI_2)];
[stepper setTransform:CGAffineTransformScale(stepper.transform, 0.6, 0.6)];
答案 1 :(得分:0)
您将UIStepper放在UIView上,然后旋转UIView。
【编辑】 答案是我的错。对不起。 正确答案如下。
方法CGAffineTransformMake~
和CGAffineTransform~
有差异。
CGAffineTransformMake~
用于第一次转换。
如果要重叠变换,则应使用CGAffineTransform~
。
这是一个例子。
CGAffineTransform scale = CGAffineTransformMakeScale(0.6f, 0.6f);
stepper.transform = CGAffineTransformRotate(scale, M_PI / 2.0f);
请试一试。