相关疑难解决方法(0)

支持多种方向的最简单方法?当应用程序在Landscape中时如何加载自定义NIB?

我有一个应用程序,我想支持多个方向.我有两个.xib文件,我想使用myViewController.xib myViewControllerLandscape.xib. myViewController.xib并存在于project/Resources中,myViewControllerLandscape.xib并存在于根项目目录中.

我想要做的是使用单独的NIB (myViewControllerLandscape.xib)进行轮换.我尝试在viewDidLoad like中检测旋转:

if((self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft) || (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight))
 {
  NSLog(@"Landscape detected!");
  [self initWithNibName:@"myViewControllerLandscape" bundle:nil];

 }
Run Code Online (Sandbox Code Playgroud)

但我可以在gdb中看到,当应用程序以横向设备启动时,不会执行此操作.NSLog消息不会触发.为什么是这样?我做错了什么?

此外,如果我initWithNibNameviewDidLoad方法中明确地放置了函数调用,则不会加载该nib,并继续使用myViewController.xib文件.我的电话有什么问题?我应该指定捆绑吗?

谢谢!

iphone xib uiviewcontroller nib iphone-sdk-3.0

35
推荐指数
3
解决办法
3万
查看次数

方向改变时,在同一位置旋转图像90度

结束这样做: 支持多个方向的最简单方法?当应用程序在Landscape中时如何加载自定义NIB?工作精湛!

我在Photoshop中制作了一个图像,我希望在iPad应用程序中将其用作信息屏幕的背景.该图像还包含文本和一些图标.在图像周围,我有一个绿色的边框.

我想要达到的效果是:

当用户从纵向朝向横向时,我希望图像(仅框架和图标)旋转90度,使图像以横向模式显示,而不是在横向上具有框架的纵向视图.文本和图标是分离的(我在不同的UIImageView中组织的不同层)它们将旋转90度.

我已经完成的工作如下:

用这种方法进行了一些实验:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:
Run Code Online (Sandbox Code Playgroud)

并试图这样做:

self.btnFacebook.transform = CGAffineTransformMakeRotation(1.5707964);
Run Code Online (Sandbox Code Playgroud)

我认为它会将btnFacebook属性向右旋转90度(如果我错了,请纠正我),因为它指定了正弧度.我似乎无法让它正常工作.难道这不能将按钮绕框架中心坐标旋转90度吗?这不会导致按钮位置发生变化(按钮是方形)?

编辑

制作图像:

在此输入图像描述

由于图像显示图像背景(一些在两个方向看起来都很好的自定义图形)从纵向到横向并旋转,所以它在横向上不显示为肖像,图标与背景分离,因此它们需要旋转为因为他们需要处于正确的方向(这是社交图标).然而,文本位于相同的位置,它只旋转90度而不重新定位.

iphone uiimageview cgaffinetransform

10
推荐指数
1
解决办法
5629
查看次数