我想在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,预览视图对该视图使用左/右方向,所以我需要找到一个允许我保留它的实现,同时还允许一般的大小类自定义。
答案 0 :(得分: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;
}
}