1

我只是想在我的 iPhone 应用程序中添加一个vertical sliderprogressBar,但每次我尝试将它们转换为将它们旋转 90 度时,它们要么消失要么伸展。有没有办法防止这种情况?我想要发生的只是让滑块和进度条显示为垂直但保持相同的大小并具有相同的外观。

添加:

我在这里找到了如何旋转的代码:

    define DEGREES_TO_RADIANS(angle) ((angle) / 180.0 * M_PI)
    [self.progressView setTransform:CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(angle))];

我在 中创建sliderand progress viewstoyboard将其链接到我在 中声明的变量ViewController.m。随着“角度”的增加,progress bar 和slider越来越伸展。最后,当我旋转 90 时,它progress bar消失了,slider看起来只是一个拇指图像,但没有slider bar

#define DEGREES_TO_RADIANS(angle) ((angle) / 180.0 * M_PI)
- (void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

    //Create a transformation with just the rotation
    CGAffineTransform transform = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(90));

    //Now apply our scale
    transform = CGAffineTransformScale(transform, 2, 2);

    //Now set the transform on the object to the combined rotation/scale transform.
    [self.shield2 setTransform: transform];

    CGAffineTransform sliderRotation = CGAffineTransformIdentity;
    sliderRotation = CGAffineTransformRotate(sliderRotation, -DEGREES_TO_RADIANS(89));

    self.shield.transform = sliderRotation;
}
4

1 回答 1

2

自动布局不适用于变换。禁用自动布局或删除转换后的控件和其他视图之间的任何约束,并“手动”定位控件。

于 2013-06-30T19:43:36.003 回答