使用iOS7构建会生成外观类似iOS6的小部件

使用iOS7构建会生成外观类似iOS6的小部件,ios,ipad,ios7,uipopovercontroller,xcode5,Ios,Ipad,Ios7,Uipopovercontroller,Xcode5,在移动到XCode 5和iOS7基本SDK之后,我的应用程序中的一些UI小部件在iOS7设备上仍然看起来像iOS6样式(渐变、帧)。在iOS7的等效仿真器上不会发生这种情况。并非所有小部件都会出现这种情况,UIDocumentInteractionController的弹出窗口看起来像设备上的iOS7,但UIPopoverController并没有。用于重命名文件的键盘也显示了模拟器和设备之间的这种差异 iOS如何确定UI元素的视觉样式?它是基于静态链接库还是运行时确定的?我已尝试从设备中完全清

在移动到XCode 5和iOS7基本SDK之后,我的应用程序中的一些UI小部件在iOS7设备上仍然看起来像iOS6样式(渐变、帧)。在iOS7的等效仿真器上不会发生这种情况。并非所有小部件都会出现这种情况,UIDocumentInteractionController的弹出窗口看起来像设备上的iOS7,但UIPopoverController并没有。用于重命名文件的键盘也显示了模拟器和设备之间的这种差异

iOS如何确定UI元素的视觉样式?它是基于静态链接库还是运行时确定的?我已尝试从设备中完全清除应用程序,但没有任何更改

视网膜iPad模拟器:

配备iOS 7的第三代iPad:

本例中的代码相当简单,没有自定义渲染或布局

self.poController = [[UIPopoverController alloc] initWithContentViewController:audioCopyController];
[audioCopyController showDoneButton:NO];
audioCopyController.view.frame = CGRectMake(0,0,350,250);
_poController.popoverContentSize = audioCopyController.view.bounds.size;
_poController.delegate = self;
[_poController presentPopoverFromRect:view.audiocopyButton.frame
                                           inView:view
                         permittedArrowDirections:UIPopoverArrowDirectionDown
                                         animated:YES];

提前感谢您的帮助。

检查项目配置文件和目标配置文件。 它可能是用iOS 6.X基本SDK设置的

为此:

  • 转到Xcode 5中的项目配置文件
  • 单击“生成设置”选项卡
  • 编辑基本SDK字段以将其切换到iOS 7
有时,我们会遇到Xcode不考虑当前设置的问题

对其进行更改和编译有助于它理解需要更改

确保为项目配置和运行此配置的每个目标配置文件正确配置此配置

对于模拟器和您的设备,您可能有两个不同的目标

希望这有帮助 问候


大卫

好的,我发现了问题所在。大卫的建议引起了我的思考

我同时维护多个应用程序,其中一个相当旧。XCode5中的新界面生成器打破了旧应用程序中许多字段的透明性,因此我将XCode4与XCode5放在一个单独的安装文件夹中。似乎我的XCode5项目仍然指向XCode4的SDK文件夹(不确定这是如何实现的,查看实际的链接器命令行可能会有所帮助),所以在从我的机器上删除XCode4的6.1 SDK文件夹之后,使用XCode 5的干净构建在我的iOS支持的应用程序中生成了正确的iOS 7外观小部件


这个故事的寓意是,在同一台机器上安装多个XCode/SDK时要非常小心。希望这能帮助其他可能正在尝试类似方法以支持传统应用程序的人。

您使用的是哪一代设备?iPad第三代,尽管这个问题也出现在iPad Mini上。谢谢。。!!你救了我的命。。甚至我的机器上都有iOS 6.1 SDK,正因为如此,我的iOS 7应用程序才有了类似iOS 6的外观。。删除旧sdk解决了我的问题。。!!谢谢……很高兴听到这有帮助。如果可以,请投票支持下面的答案。David将此设置为“最新的SDK 7.0”,并按照您的建议尝试手动将其设置为7.0,但不幸的是,这并没有解决问题。谢谢你的建议!