0

我想在 iPhone 横向布局中旋转我的 UISlider 并使用此代码来处理它。

self.customSlider.transform = CGAffineTransformMakeRotation(M_PI/2);

但是,我想使用它,-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator以便它根据尺寸等级适当地旋转。

我有以下代码,我在其中放置了其他轮换代码

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id)coordinator {

[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];

if ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeLeft) {
    self.stillCamera.outputImageOrientation = UIInterfaceOrientationLandscapeRight;

}

if ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeRight) {
    self.stillCamera.outputImageOrientation = UIInterfaceOrientationLandscapeLeft;

}

if ([UIDevice currentDevice].orientation == UIDeviceOrientationPortrait) {
    self.stillCamera.outputImageOrientation = UIDeviceOrientationPortrait;
}

}

我想确保 UISlider 在每个方向上都处于正确的方向,滑块的左边缘在横向顶部,右侧在底部。无论用户如何从纵向向左或向右旋转,我都需要检查旋转以确保滑块处于正确的位置。我怎样才能做到这一点?

编辑:我正在使用 GPUImage 并且预览视图使用该视图的左/右方向,因此我需要找到一个允许我保留它同时还允许通用大小类自定义的实现。

4

1 回答 1

0

我想到了

首先 - 将 UISlider 放在容器视图中,并根据需要固定该容器视图。

将 UISlider 固定到纵向的容器视图 - 水平/垂直居中,高度/宽度与容器相等。

在横向中,根据需要使用 UISlider 居中的 H/V 固定容器视图,宽度与容器相等。

-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {


    [super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];

    if ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeLeft) {
        self.stillCamera.outputImageOrientation = UIInterfaceOrientationLandscapeRight;
         self.customSlider.transform = CGAffineTransformMakeRotation(M_PI/2);

    }

    if ([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeRight) {
        self.stillCamera.outputImageOrientation = UIInterfaceOrientationLandscapeLeft;
         self.customSlider.transform = CGAffineTransformMakeRotation(M_PI/2);

    }

    if ([UIDevice currentDevice].orientation == UIDeviceOrientationPortrait) {
        self.stillCamera.outputImageOrientation = UIDeviceOrientationPortrait;
        self.customSlider.transform = CGAffineTransformIdentity;
    }

}
于 2015-10-18T00:59:06.563 回答