- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
因此,我使用最新版本的 XCode 创建了一个新项目,并尝试记录我的应用程序的屏幕大小(以确定 UI 的设备类型)。我从我的 iPhone 5 运行以下代码:
NSLog(@"%f", [[UIScreen mainScreen] bounds].size.height);
返回 480
,这是旧 iPhone 系列的屏幕尺寸。我在模拟器中尝试过,同样的事情发生了。我必须在项目中启用一些属性才能识别屏幕尺寸吗?
这只发生在 5 台以上的设备上;如果我在 iPad 上运行游戏,它会识别 1024 的屏幕尺寸。
我知道这段代码过去一直有效。不久前我使用完全相同的方法制作了一个游戏,它检测屏幕大小没有问题,但这是在 XCode 4.x 中构建的。
我正在使用自定义 View Controller ,我使用以下代码在 App Delegate 中创建它:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if([Global getDevice] == 1)
{
//iPhone 5+
self.window.rootViewController = [[FivePlus alloc] initWithNibName:nil bundle:nil];
}
else if([Global getDevice] == 2)
{
//iPhone 4S-
self.window.rootViewController = [[FourSMinus alloc] initWithNibName:nil bundle:nil];
}
else
{
//iPad
self.window.rootViewController = [[iPad alloc] initWithNibName:nil bundle:nil];
}
[[self window] makeKeyAndVisible];
// Override point for customization after application launch.
return YES;
}
+ (int)getDevice
{
if([[UIScreen mainScreen] bounds].size.height == 568 || [[UIScreen mainScreen] bounds].size.width == 568)
{
return 1;
}
else if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
return 3;
}
else
{
return 2;
}
}
最佳答案
显然,iOS完全依赖于 iPhone 5+ 分辨率的启动图像的存在,以便让应用程序以该分辨率运行。
这个问题有两种解决方案:
1.使用 Assets 目录
当您创建一个新项目时,有一个称为 Assets 目录的东西,它存储您的启动图像文件。将其中之一添加到您的项目中即可!
<强>2。挖出一些旧文件
如果您已经使用 XCode 一段时间,您就会知道在 XCode 4.x 的更高版本之一中,该应用程序自动为您的应用程序创建了三个名为 Default.png 的默认启动图像文件
、Default@2x.png
和 Default-568h@2x.png
。您需要在您的应用程序中使用这些文件,它们基本上只是分辨率分别为 480x320
、960x640
和 1136x640
的黑色图像(请注意,这些是 HxW,而不是 WxH)。
希望这可以帮助遇到这个荒谬问题的其他人。
关于ios - UIScreen MainScreen Bounds 返回错误的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21668497/
我最近做了并更新了我的 Xamarin iOS 项目,我曾经能够调用以下代码来检索屏幕宽度和高度: if (orientation == UIInterfaceOrientation.Landscap
我想创建一个没有任何 Storyboard的项目。 我已删除 Main 和 LaunchScreen Storyboard。 像往常一样,我添加到我的 applicationDidFinishLaun
我想将内容全屏放置在外部屏幕上(现在是使用 Air Server 的 MacBook Pro),并在平板电脑上放置一个屏幕。 我正在使用 https://github.com/quellish/Air
我正尝试在屏幕打开时推送通知,但我不知道如何检测到。有没有办法检测 UIScreen 何时打开? 最佳答案 简短的回答是否定的。与 UIScreen 关联的唯一(公共(public))通知可以在 UI
我有一个方法负责加载有关事件的详细信息(查询 sqlite 数据库中的标题、描述、缩略图路径等),因为我需要为大量事件调用它,所以我正在调度使用 Grand Central Dispatch 到后台线
window = UIWindow(frame: UIScreen.mainScreen().bounds) 在这一行我得到了上面的错误。根据以前的帖子,我看到它在 Swift 3.0 中发生了变化,
如何将代码简化为一行? CGRect screen = [[UIScreen mainScreen] bounds]; NSLog(@"%@", screen.size.width); 感谢您的宝贵
我在 info.plist 文件中禁用了除纵向模式之外的所有方向模式,因为我不希望应用程序旋转。但是我希望一个 View Controller 仅处于横向模式。我可以在 View Controller
只需这样做: [[UIScreen mainScreen] setBrightness:0.2]; 不起作用。对应用程序完全没有影响。是否需要设置其他设置才能使其正常工作? 最佳答案 它可以在设备上运
这个问题在这里已经有了答案: App not sized properly iOS 8 iPhone simulator (1 个回答) 关闭 8 年前。
我正在制作一个 iPad 应用程序,它从纵向开始,但可以旋转到横向。在 -(void) loadView 中,我调用函数 drawView。在 drawView 中,我有这行代码: CGRect r
我想从包括状态栏在内的 View 中截取快照。 下面的代码可以在模拟器中运行,但不能在物理设备上运行。 extension UIScreen { class func screenshot()
您好,我正在以编程方式启动一个 rootViewController(只有门户,没有风景) 这是代码使用 CGRect appFrame = [[UIScreen mainScreen] bounds
我在 iOS 5.0.1 中的 [UIScreen screens] 中看到了奇怪的行为,在我们记录到 Flurry 崩溃的报告中。有时 [UIScreen screens] 会返回一个空数组。我们的
目前我正在尝试创建一个应用程序来调整设备的亮度。在 iOS5 中,mainScreen 新增了 brightness 属性,可以设置屏幕亮度。我正在使用以下代码: [[UIScreen mainScr
为什么我在 Apple 的一些示例代码(例如 PhotoScroller)中看到我应该在 loadView 中执行以下操作: CGRect frame = [[UIScreen mainScreen]
我有点生气。我有一个应用程序,其状态栏在主窗口中可见。因为我想动态设置我的 View 及其框架大小(例如,状态栏在通话期间可能占用 40 像素)。 我可以执行以下两个操作之一: [[UIScreen
我正在尝试在没有镜像模式的情况下使用 Airplay 在 Apple TV 上显示图片。但是 [UIScreen screens] 方法在镜像关闭时总是返回 1 个屏幕(主屏幕)。我希望我的图片显示与
我正在尝试在没有镜像模式的情况下使用 Airplay 在 Apple TV 上显示图片。但是 [UIScreen screens] 方法在镜像关闭时总是返回 1 个屏幕(主屏幕)。我希望我的图片显示与
我在尝试访问 documented 时遇到构建错误UIScreen 的属性。 重现 Xcode 版本 7.2 (7C68) iOS 9.2 swift 尝试编译 - import UIKit clas
我是一名优秀的程序员,十分优秀!