在画廊自转 - willAnimateRotation ......不调用
-
26-09-2019 - |
题
我使用此。
我已经把这个在添加图像其中:
self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
我已经把这些覆盖在SlideShowViewController:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
return YES;
}
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)InterfaceOrientation duration:(NSTimeInterval)duration {
}
首先是所谓的,但不是所述第二
我不使用笔尖;它使用它返回它与3个图像的self.view自定义的初始化。
我这么想吗?什么是修改这个剧本拿到风景照片拉伸至当iPhone被用户旋转全宽度的最佳方式?
编辑:只是尝试添加willAnimate ......我NavigationController的根视图控制器,但它不被调用。也许NavigationController是什么问题?在这种情况下,我在哪里把willAnimate ...?另外,我该如何接收和传递对可见光的viewController发送给它的消息? 的
修改2:话题错误的原因是,TabBarController失踪在IB的连接(我确信在那里)。所以,现在我的问题是一样的其他一些类似的问题 - willAnimate ......被称为根VC而不是在推动风险投资。在代码中,我在画廊VC,而不是滑动它,即使用变淡。它不是被推但目前加入作为一个子视图的窗口 - 以填充整个显示强>
有关的建议如何消息子视图的设置帧控制器将认识到的,或替代解决方案!
解决方案
这是不是一个答案,为什么你的“willAnimateRotation ..” - 方法不触发,而是以图片库如何适应自身旋转的替代
在initWithImages添加:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didRotate:)
name:UIDeviceOrientationDidChangeNotification object:nil];
将此方法来接收该通知。在didRotate可以处理调整大小的图像的重新定位。
- (void) didRotate:(NSNotification *)notification
{
UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
if (orientation == UIDeviceOrientationLandscapeLeft)
{
NSLog(@"Landscape Left!");
}
}
不要忘记注销通知中的dealloc:
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil];
五月我也建议你使用一个UIScrollView,而不是自行处理滚动和手势?
其他提示
时SlideShowViewController直接推到导航控制器堆栈,或者是一些其它的视图的一部分? UIView的委托方法得到一种搞砸与子视图上的导航控制器堆栈上的视图时。
如果SlideShowViewController只是一个已经被推到导航控制器栈的其他视图的子视图,我会尝试监听在视图控制器这种方法实际上是导航控制器堆栈上,然后调用适当的方法SlideShowViewController从那里。
我在获得viewWillAppear中和称为导航控制器内类似的方法也有类似的问题。结果, 我解决了他们打电话时手动根方法被调用。结果 我不知道是否与旋转相同的问题,但你可以尝试把你的根视图控制器
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)InterfaceOrientation duration:(NSTimeInterval)duration {
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
[self.navigatioController willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
}
这问题问得有点棘手回答我猜,因为它是关于我的具体的非基本的应用程序设置。对不起,让用完奖金时,它基本上是来不及了同一天,我问;)
我想我会发布这个“不埋在评论”的人谁得到了同样的症状。
首先是,我注意到一个IBOutlet即我确信我连接在一个点上不再连接(标签栏控制器 - > tabBarController对象)。由于我是绞尽脑汁,并搬来搬去的东西,使这项工作,这可能是因为我想的东西,然后还原备份。
溶液的第二部分是addSubView图库视图到tabBarController的视图,而不是导航的视图。然后根视图控制器的shouldAuto ...和willAuto方法被调用。
(要隐藏标签栏和导航栏,同时旋转我不得不在显示画廊其阿尔法设置为0,否则导航的视图被部分导航栏下返回到它时隐藏。我发现没有隐藏状态栏而表示画廊的方式。)
在此之后有以具有在从另一个标签导航到细节视图图库的请求,并且我只,而另一个(工作)的细节视图中的其他标签下示出将自转工作棘手的错误新画廊。会尽快给解决这个,quittin时间。