草庐IT

ios - 屏幕比例/大小在 iOS 8 中是正确的,但在同一设备上的 iOS 9 中是错误的

coder 2024-01-12 原文

我最近将 Xcode 更新到 7,这样我就可以开始针对 iOS 9 进行开发了。在首次启动我的应用程序时,我注意到屏幕尺寸/比例与 iOS 8 上的外观相比有所偏差,无论是在 iPhone 6 上设备。

这是它在 iOS 8 上的正确显示方式:

这是它在 iOS 9 上看起来不正确的地方:

如果您还注意到,这两张图片的大小完全相同。

请注意 AdMob 横幅如何在左侧/右侧有空白区域,我假设 AdMob 只知道将其居中。还有表格 View 右侧的大空白区域和底部的向下按钮。

此外,在 iOS 8 中,在主委托(delegate)方法中放置一个断点时,主窗口的框架为 (0 0; 320 568)。窗口上的层也是一样的。

另一方面,在 iOS 9 中,在主委托(delegate)方法中放置一个断点时,主窗口的框架为 (0 0; 375 667)。窗口上的层也是一样的。

这解释了为什么应用程序在 iOS 8 和 iOS 9 中的外观不同,但我不知道为什么 iOS 8 看起来像我想要的那样,而 iOS 9 却不是。是否缺少某些设置?

编辑:

从那以后,我还发现 mainScreen 的边界在 iOS 8 和 iOS 9 中运行时是不同的。mainScreen 的 screenBounds 设置为与上面相同的框架,我不知道为什么这两个 iOS 版本之间存在差异。

编辑 2:

所以我刚刚创建了一个全新的项目并对其进行了测试。在我的第一次编辑中,我没有得到与上面解释的相同的行为。当我查看 mainScreen 边界时,在 iOS 8 和 iOS 9 中,它都是 (0,0;375,667);

我无法弄清楚是什么导致了这种情况发生,所以我可以修复它。

编辑 3:

经过昨晚的反复试验,结果证明是发射图像导致了这种情况的发生。如果我从列表中删除 Default-568@2x.png 的启动图像,它就会正确显示。很奇怪,这样的事情会影响规模。我仍然没有弄清楚如何解决这个问题,因为你必须有启动图像,否则苹果会拒绝该应用程序,所以我一直保持打开状态,直到今晚我有更多时间来玩弄它。

最佳答案

您是在设备还是模拟器上进行测试?如果在设备上,您的 iOS 8 设备可能启用了显示缩放:设置 → 显示和亮度 → 显示缩放。这会使 iPhone 6 (375 ✕ 667) 认为它是 iPhone 5 (320 ✕ 568)。

关于ios - 屏幕比例/大小在 iOS 8 中是正确的,但在同一设备上的 iOS 9 中是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32854696/

有关ios - 屏幕比例/大小在 iOS 8 中是正确的,但在同一设备上的 iOS 9 中是错误的的更多相关文章

  1. ruby-on-rails - 在 Rails 中将文件大小字符串转换为等效千字节 - 2

    我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,

  2. ruby - Highline 询问方法不会使用同一行 - 2

    设置:狂欢ruby1.9.2高线(1.6.13)描述:我已经相当习惯在其他一些项目中使用highline,但已经有几个月没有使用它了。现在,在Ruby1.9.2上全新安装时,它似乎不允许在同一行回答提示。所以以前我会看到类似的东西:require"highline/import"ask"Whatisyourfavoritecolor?"并得到:Whatisyourfavoritecolor?|现在我看到类似的东西:Whatisyourfavoritecolor?|竖线(|)符号是我的终端光标。知道为什么会发生这种变化吗? 最佳答案

  3. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  4. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  5. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  6. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  7. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  8. ruby - Rails 关联 - 同一个类的多个 has_one 关系 - 2

    我的问题的一个例子是体育游戏。一场体育比赛有两支球队,一支主队和一支客队。我的事件记录模型如下:classTeam"Team"has_one:away_team,:class_name=>"Team"end我希望能够通过游戏访问一个团队,例如:Game.find(1).home_team但我收到一个单元化常量错误:Game::team。谁能告诉我我做错了什么?谢谢, 最佳答案 如果Gamehas_one:team那么Rails假设您的teams表有一个game_id列。不过,您想要的是games表有一个team_id列,在这种情况下

  9. 屏幕录制为什么没声音?检查这2项,轻松解决 - 2

    相信很多人在录制视频的时候都会遇到各种各样的问题,比如录制的视频没有声音。屏幕录制为什么没声音?今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音,你可以试试这个方法。 一、检查是否打开电脑系统声音相信很多小伙伴在录制视频后会发现录制的视频没有声音,屏幕录制为什么没声音?如果当时没有打开音频录制,则录制好的视频是没有声音的。因此,建议在录制前进行检查。屏幕上没有声音,很可能是因为你的电脑系统的声音被禁止了。您只需打开电脑系统的声音,即可录制音频和图画同步视频。操作方法:步骤1:点击电脑屏幕右下侧的“小喇叭”图案,在上方的选项中,选择“声音”。 步骤2:在“声

  10. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

随机推荐