viewDidLoad 中的帧大小错误[重复]

2024-05-08

可能的重复:
为什么我必须在 viewDidLoad 中手动设置视图的框架? https://stackoverflow.com/questions/6757018/why-am-i-having-to-manually-set-my-views-frame-in-viewdidload

我有适用于 iphone 和 ipad 的通用应用程序,两个故事板,如果我在 iphone 模拟器上运行我的应用程序viewDidLoadnib 中每个元素的每一帧都是正确的。但如果我为 ipad(模拟器)执行此操作,框架为零,但屏幕看起来正确。你能给我建议吗?谢谢。


这是一个非常相似的问题ios setContentOffset 在 iPad 上不起作用 https://stackoverflow.com/questions/13904205/ios-setcontentoffset-not-working-on-ipad/13904962#13904962...我的答案与那里相同:

“你不应该初始化 UI 几何相关的东西viewDidLoad,因为此时视图的几何形状尚未设置,结果将是不可预测的。

... viewWillAppear:是执行这些操作的正确位置,此时几何图形已设置,因此获取和设置与几何图形相关的属性是有意义的。”

这也适用于getting几何相关的属性。不要因为它在一种情况下表现正确而在另一种情况下表现不正确而分心...要点是过早设置/获取几何属性会产生错误不可预料的结果。

你的屏幕looks正确,因为您看到了结果after viewWillAppear: / viewDidAppear:.

更新(ios6)

在 ios6 中使用自动布局时,在布局子视图之前不会设置框架。在这些条件下获取帧数据的正确位置是在 viewController 方法中viewDidLayoutSubviews.

这就是所谓的after viewWillAppear:。但要小心——他们并不总是被叫到一起。例如,viewDidLayoutSubviews旋转后调用,viewWillAppear:不是。viewWillAppear:每次视图变为可见视图*时都会调用,viewDidLayoutSubviews不一定(仅当观点需要转达时)。

(* 除非该应用程序已进入后台并正在成为前台应用程序,则viewWillAppear:不被调用)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

viewDidLoad 中的帧大小错误[重复] 的相关文章

随机推荐

  • Cordova,为什么需要 InAppBrowser 插件才能在系统浏览器中打开链接

    我有一个 Cordova 应用程序 它是一个带有单个 HTML 文件的单页应用程序 所有链接都应在系统浏览器中打开 我不需要 嵌入式 InAppBrowser 而是真正的本机系统 外部浏览器 我们到处都可以找到使用 InAppBrowser
  • 在 PostgreSQL 中进行 DROP 时,避免引用表上的独占访问锁

    为什么在 PostgreSQL 中删除表需要ACCESS EXCLUSIVE锁定任何引用的表 我怎样才能将其减少到ACCESS SHARED锁还是根本不锁 即有没有办法在不锁定引用表的情况下删除关系 我在文档中找不到任何提及需要哪些锁 但是
  • 在 github 上查找强制推送的提交者

    在我们的项目 托管在 GitHub 上 中 每隔一段时间就会有人意外强制推送 master 没有人知道是否这样做 我想找出是谁干的 以及背后有什么样的错误配置的工具或坏习惯 那么问题来了 如何识别进行强制推送的用户呢 当我拉动时 我看到这样
  • Visual Studio 6 C++ 在 Windows 8.1 中崩溃 [重复]

    这个问题在这里已经有答案了 这里的一些开发人员昨晚安装了 8 1 当我们启动 VC6 时 闪屏立即崩溃 我们尝试了标准兼容性更改 以管理员身份运行等 但没有成功 其他人也有这些问题吗 你能解决它们吗 昨晚在 Windows 8 上运行得很好
  • gitlab runner ssh私钥644文件权限错误

    运行 gitlab ci cd 管道时 ssh 给出 0644 badpermission 错误 变量作为文件类型存储在 gitlab 的 settings gt variable 部分中 gitlab ci yml 文件如下所示 stag
  • QT 中的应用程序->处理消息?

    在 Borland 6 中 我经常使用它来解除程序操作的卡住 Application gt Processmessages 现在 对于 QT 4 8 1 我在这个外国 对我来说 QT 文档中找不到 谁能帮我 在 Qt 中 您可以使用静态函数
  • Python社区模块,限制每个社区的规模?

    我正在使用社区模块 http perso crans org aynaud communities api html http perso crans org aynaud communities api html 检测图中社区的最佳划分函
  • Sharepoint 2013 MVC 5 提供商托管的应用程序。无法使用 [SharePointContextFilter] 在 HttpPost 上进行身份验证

    过去一周我一直在绞尽脑汁 无法解决对共享点提供商托管的应用程序进行正确身份验证的一些问题 我目前正在为公司的 Sharepoint 在线开发一个 sharepoint 应用程序 我正在使用 Visual Studio 2013 我将该应用程
  • Response.WriteFile / Response.BinaryWrite / Response.TransmitFile (ASP.NET) 出现问题

    我有一个简单的网页 可以生成一个 CSV 文件 我希望用户在创建完成后能够下载该文件 我的情况总结如下 CSV 文件可以在内存中或磁盘上创建 对我来说没关系 完成 CSV 文件传输后 我不希望它继续驻留在磁盘上 我尝试过使用 Respons
  • 在 Ext JS 构造函数中将项目推入数组会产生多个项目

    我有一个我定义的 Ext JS 类 在这个班级的constructor 我将一个文本字段推送到我的项目数组上 然后添加到我的测试字符串中 数组和字符串在类定义中都声明为空 但是 如果您尝试创建多个类实例 您将看到项目数组在每个实例之间共享
  • XML 序列化和命名空间前缀

    我正在寻找一种使用 C 的方法 可以将类序列化为 XML 并添加命名空间 但定义该命名空间将使用的前缀 最终我尝试生成以下 XML
  • 如何在没有 Cloud Explorer 的情况下从 Azure 应用服务获取事件日志文件?

    我有 Azure 应用服务 在 Visual Studio 2019 中 我可以执行以下操作来从中获取事件日志 Open 云浏览器窗户 查看 gt 云资源管理器 使用我的 Azure 凭据登录 展开订阅 然后展开资源组 然后展开应用服务 展
  • 如何正确链接 php-fpm 和 Nginx Docker 容器?

    我正在尝试链接 2 个单独的容器 nginx 最新 https registry hub docker com nginx php fpm https registry hub docker com php 问题是 php 脚本不起作用 也
  • AWS SNS 发布到订阅的 Lambda 函数记录空字段

    试图将其发布到 AWS 论坛 但无论这意味着什么 我的帐户似乎 尚未准备好 我设置了一个 AWS Lambda 函数 用 Java 编写 该函数接受 POJO 以允许自动反序列化 JSON 我使用的测试 JSON 如下所示 表示一旦一切启动
  • XCode5无法在iOS模拟器上安装应用程序

    我多次成功安装该应用程序 突然 我收到一条消息 我的应用程序 意外退出 失去连接 iOS 6 x 和 7 会发生这种情况 我已经尝试从模拟器中手动删除应用程序 重置 清理 退出 重新启动 一切 有什么建议吗 在 iOS 模拟器菜单中 执行
  • Spring Boot CSRF

    尝试在最新的Spring Boot上实现CSRF保护 互联网上的所有示例都是基于用户登录和身份验证 我不需要 我的网站没有任何需要身份验证的部分 我想 1 休息请求来自站点内部 不允许来自外部的 wget 直接请求 2 所有页面 路由 必须
  • 链接悬停时的淡入淡出效果?

    在许多网站上 例如http www clearleft com http www clearleft com 您会注意到 当将鼠标悬停在链接上时 它们会淡入不同的颜色 而不是立即切换 默认操作 我假设 JavaScript 是用来创建这种效
  • Express.js在控制器中获取http方法

    我正在构建一个注册表单 本地护照作为身份验证 表单作为表单助手 因为注册只知道 GET 和 POST 我想在一个函数中完成整个处理 换句话说 我正在寻找类似的东西 exports register function req res if r
  • 从 Air Native 扩展返回结构

    是否可以从本机代码返回结构 返回 int 或 boolean 相对简单 但是如何将更复杂的结构返回给动作脚本 您可以返回任何可以在本机代码中表示为 FREObject 的对象 这实际上包括任何 Actionscript 类或 Actions
  • viewDidLoad 中的帧大小错误[重复]

    这个问题在这里已经有答案了 可能的重复 为什么我必须在 viewDidLoad 中手动设置视图的框架 https stackoverflow com questions 6757018 why am i having to manually