我正在使用this。
我把它放在添加图像的地方:
self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
我已将这些覆盖放在SlideShowViewController中:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{
return YES;
}
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)InterfaceOrientation duration:(NSTimeInterval)duration {
}
第一个叫,但不是第二个。
我没有使用笔尖;它使用一个自定义init,它返回一个带有3个图像的self.view。
我错过了什么吗?当用户旋转iPhone时,修改此脚本以使横向照片拉伸到最大宽度的最佳方法是什么?
编辑:刚尝试将willAnimate ...添加到我的NavigationController的Root View Controller中,但是没有调用它。也许NavigationController是问题?在那种情况下,我在哪里放置willAnimate ......?或者,我如何接收并传递发送到可见viewController的消息?
编辑2:主题中的错误原因是TabBarController在IB中缺少连接(我确信在那里)。所以现在我的问题与其他一些类似问题相同 - willAnimate ...在根VC中调用,但不在推送的VC中调用。我使用的代码在库VC中淡出而不是滑入,即。它没有按下,但目前作为子视图添加到窗口 - 填满整个显示。
有关如何向子视图的控制器发送信息以设置帧的建议,我们将不胜感激,或者提供替代解决方案!
答案 0 :(得分:1)
这不能解释为什么你的“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而不是自己处理滚动和手势?
答案 1 :(得分:0)
SlideShowViewController是直接推送到导航控制器堆栈,还是其他视图的一部分?在使用导航控制器堆栈上的视图上的子视图时,UIView委托方法会变得混乱。
如果SlideShowViewController只是推送到导航控制器堆栈的其他视图的子视图,我会尝试在实际位于导航控制器堆栈的视图控制器中侦听此方法,然后调用相应的方法从那里开始使用SlideShowViewController。
答案 2 :(得分:0)
我在获取viewWillAppear和在导航控制器中调用的类似方法时遇到了类似的问题 我通过在调用root方法时手动调用它来解决 我不知道它是否与旋转相同,但您可以尝试放入根视图控制器
-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)InterfaceOrientation duration:(NSTimeInterval)duration {
[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];
[self.navigatioController willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
}
答案 3 :(得分:0)
我想这个问题有点棘手,因为它是关于我特定的非基本应用设置。抱歉让赏金时间用完了,我问的那天基本上已经太晚了;)
我认为我会发布这个“没有被评论”,因为任何有同样症状的人都会这样做。
第一个是我注意到一个IBOutlet,我确信我在某一点连接不再连接(Tab Bar Controller - > tabBarController对象)。由于我绞尽脑汁并移动了一些东西来完成这项工作,这可能是因为我尝试了一些东西然后恢复备份。
解决方案的第二部分是将galleryView视图添加到tabBarController的视图而不是导航到视图。然后调用根视图控制器的shouldAuto ...和willAuto方法。
(要在旋转时隐藏标签栏和导航栏,我必须在显示图库时将其.alpha设置为0,否则当返回到导航栏时,导航到的视图部分隐藏在导航栏下。我发现没有在显示图库时隐藏状态栏的方法。)
在此之后有一个请求让画廊在详细视图中导航到另一个标签,我得到了一个棘手的错误,只有在其他标签下显示OTHER(工作)细节视图时才会自动旋转工作与新画廊。将回到解决方案,quittin时间。