仅在新iPad 3上:wait_fences:未能收到回复:10004003

2023-12-06

所以我知道对此有很多问题,但据我所知这是一个独特的情况,所以我想我会发布它。希望这会添加一些信息,最终可以给我们一个答案,解释为什么会发生这种情况。当我的设备旋转时,我收到错误:wait_fences:无法接收回复:10004003。我的动画观点源自:

- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

我只在新的 iPad 3 上遇到此错误。我在原始 iPad 和低至 3GS 的 iPhone 上使用了完全相同的程序。它们都不会出现 wait_fences 错误,而且它们的旋转速度都比 iPad 3 快。

我几乎专门使用 Core Graphics 来绘制视图。我还确保它们在调整大小时重新绘制,这样我就不会得到像素化的视图。如果我在调整大小时禁用重绘,则不会收到此错误(但我会得到拉伸视图)。如果我完全禁用核心图形绘制,我不会收到错误(但是,当然,我会得到黑色视图)。

I used the Time Profiler and found out that the hangup was primarily in drawing gradients: enter image description here

我更改了代码以填充而不是绘制渐变,这确实缓解了问题。我想说梯度是问题所在,除非我在其他情况下(除了响应旋转)执行这些动画并且它工作得很好。

我还想指出,我特别注意确保只对屏幕上实际存在的视图进行动画处理。我知道屏幕外的动画视图有时会导致出现此错误。

我没有包含动画代码

关于为什么会发生这种情况有什么想法吗?尤其是因为它只发生在 iPad 3 上?

对于那些会问的人,这是执行动画的代码。它通常被包装在 UIView 动画块中。

- (void) setFramesForFocusView:(CustomControl *)focusView atX:(CGFloat)x showInput:(BOOL)showInput{
    CGSize bSize = self.bounds.size;
    CGRect fRect = focusView.frame;
    fRect.size.width = bSize.width;

    CGRect iRect;
    if (focusView.inputViewIsSystemKeyboard){
        if (_keyboardRect.origin.y < 0 || _keyboardRect.origin.y >= CGRectGetMaxY(self.bounds) || CGRectIsEmpty(_keyboardRect) || CGRectGetMaxY(_keyboardRect) > CGRectGetMaxY(self.bounds)) return;
        iRect = _keyboardRect;
    } else {
        iRect = (focusView.inputUIView && showInput) ? CGRectMake(0, bSize.height / 2, bSize.width, bSize.height / 2) : CGRectZero;
    }

    CGRect iaRect = focusView.inputAccessoryUIView.frame;
    CGFloat availableFieldHeight = iRect.origin.y - iaRect.size.height;

    iRect.size.width = bSize.width;
    iaRect.size.width = bSize.width;

    if (!showInput){
        iRect.origin.y = bSize.height;
    }
    iaRect.origin.y = iRect.origin.y - iaRect.size.height;

    iRect.origin.x = x;
    iaRect.origin.x = x;
    focusView.inputUIView.frame = iRect;
    focusView.inputAccessoryUIView.frame = iaRect;

    if (focusView.expandInput){
        fRect.origin.y = 0;
        fRect.size.height = availableFieldHeight;
    } else {
        if (focusView.labelPlacement != LabelPlacementTop && focusView.labelPlacement != LabelPlacementBottom){
            fRect.size.height = _currentView.storedFrame.size.height + [focusView.label.text sizeWithFont:focusView.label.font].height; 
        }
        fRect.origin.y = availableFieldHeight - fRect.size.height;
    }
    if (fRect.size.height > availableFieldHeight){
        fRect.origin.y = 0;
        fRect.size.height = availableFieldHeight;
    }
    fRect.origin.x = x;
    [focusView setLabelPlacement:LabelPlacementTop toFrame:fRect];
}

嗯,那很快。 @RobNapier 是正确的,因为这是一个时间问题。我评论了我的动画,哇,后面还有很多其他动画视图!即使我明确地只对屏幕视图进行动画处理,但还有另一个 ViewController 在我的……呃……不知情的情况下接收了我视图后面的旋转事件?我的意思是,我应该知道吧?我写了代码。我一开始没有意识到,因为我的一组视图覆盖了整个屏幕。不幸的是,这将需要大量重写。我使用自定义容器控制器,现在我发现我需要重新考虑我的实现。很多东西都被不必要地旋转/动画化。但是哇...这回答了很多性能问题...

Update

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

仅在新iPad 3上:wait_fences:未能收到回复:10004003 的相关文章

  • 完成后未删除时如何重用 CABasicAnimation?

    很多人都在谈论在使用 CABasicAnimation 对象后保留它 所以通过设置 完成时删除 否 当动画完成时 动画对象保持附加到图层 在不创建新的 CABasicAnimation 的情况下 如何重新启动该动画 保留这个物体有什么意义呢
  • Windows 下 iOS 开发的替代方案 [重复]

    这个问题在这里已经有答案了 可能的重复 如何使用 Windows 开发机为 iPhone 进行开发 https stackoverflow com questions 22358 how can i develop for iphone u
  • NSUndoManager 会撤消后台发生的更改吗?

    我有一个编辑视图控制器 我正在使用 NSUndoManager 它是我的持久性存储 核心数据项目 的一组 我的应用程序的功能之一是与外部服务器同步 我想知道的是 如果我正在视图中编辑某些内容 同时应用程序正在与服务器同步 如果我改变主意并决
  • 当输入集中在移动 Safari 上时,页面底部出现不需要的填充

    我正在移动 safari 上使用文本区域 当文本区域聚焦时 视口似乎会在文档下方添加填充 当检查和选择区域时 它不会解析为元素 甚至不会解析为 html 节点 文本区域在屏幕上的位置或是否绝对位置似乎并不重要 当其聚焦时 填充始终存在 有时
  • @IBDesignable 错误:IB Designables:无法更新自动布局状态:Interface Builder Cocoa Touch Tool 崩溃

    我有一个非常简单的 UITextView 子类 它添加了 占位符 功能 您可以在文本字段对象中找到该功能 这是我的子类代码 import UIKit import Foundation IBDesignable class Placehol
  • 将文件保存到 icloud 驱动器

    我正在尝试将文件保存到 icloud 驱动器 我要使用简单版本 不让用户选择保存文件的位置 我只是将其保存在 icloud 驱动器的根目录中 这是我正在使用的代码 func exportToFiles for page in pages l
  • 使用动画更改 UIView 背景颜色

    我想改变我的UIView带有过渡动画的背景颜色 例如 如果视图是红色的 我将其更改为蓝色 蓝色将从屏幕底部向上滑动到顶部并充满整个屏幕 我想通过制作一个来做到这一点UIView具有相同大小和所需颜色 然后将其从屏幕外一直动画到顶部 但这似乎
  • 如何“旋转”图层/视图(例如,就像在 enigmo 中一样)

    我知道如何根据触摸移动图层 但我也希望能够旋转图像 是否有任何示例代码显示如何执行此操作 或者有人可以给我一些建议吗 Thanks 最简单的方法是使用图层的变换属性 float angle M PI rotate 180 or 1 radi
  • 从 UIImagePickerControllerReferenceURL 加载 UIImage

    我正在使用 UIImagePickerController 来允许用户从图像库中选择图像 然后我想在 sqlite 数据库中启动该文件的位置 以便稍后可以参考它 我一直在谷歌上搜索如何做到这一点 但我的结果相当简短 我知道我可以通过调用委托
  • 如何确定 NSURLSessionTask 请求何时开始?

    I use NSURLSessionTask我正在尝试监视我的一些 HTTP 请求需要多长时间 我可以监视什么委托方法 或其他方法 NSURLSessionTask实际上提出了最初的请求 如果这是一个NSURLConnection里面一个N
  • iphone navigationController :在退出当前视图之前等待 uialertview 响应

    我有一个带有由导航控制器管理的后退按钮的视图 我想在用户单击后退按钮时检查文件是否已保存 如果文件已保存 您将返回到上一个视图 否则 uialertview 会询问您是否要保存文件 所以我这样做了 但视图消失了 然后警报视图出现了 void
  • 在 Swift 2.0 中隐藏 Home 指示器

    我希望隐藏 Home Indicator 虽然这在 Swift 中很简单 但在 SwiftUI 中似乎并不那么容易 我尝试使用这个 如何使用 SwiftUI 隐藏 home 指示器 https stackoverflow com quest
  • UIKIT_EXTERN_CLASS 和 UIKIT_EXTERN,这两个常量是什么?

    当我在文档中定义类时 我总是在 interface 之前看到这两件事 UIKIT EXTERN CLASS 和 UIKIT EXTERN 这些常量代表什么以及为什么 Apple 将其放在类之前 另一件事是 有文件 UIKitDefines
  • .net MVC 将 MP4 流式传输到 iDevice 问题

    我一直在编写用于提供视频服务的一段代码 但遇到了一些问题 代码如下 public ResumingFileStreamResult GetMP4Video string videoID if User Identity IsAuthenti
  • Coredata错误setObjectForKey:对象不能为nil

    我正在尝试检查我的核心数据存储中是否有任何数据作为我的应用程序的恢复类型 基本上 如果用户处于最终视图 则 coredata 中会有一些数据不断更新 因此 他们处于最终视图中 然后应用程序崩溃 或者他们将其置于睡眠状态 然后应用程序从内存中
  • stringFromDate 始终为 NIL

    我知道这是一个重复的问题 但是在 stackoverflow 和 google 上搜索了许多类似的问题后 没有一个解决方案对我有用 我正在尝试将从数据库收到的日期转换为字符串格式以在 iPhone 应用程序中显示 我正在按以下方式将日期转换
  • 如何使用 Expo 播放 Youtube 视频

    我正在尝试使用反应本机 YouTube 组件 https github com inProgress team react native youtube在我的世博项目中 但是 我无法让它发挥作用 到目前为止 我所拥有的只是带有红色边框的黑屏
  • 将 Objective-C 框架 (CocoaPod) 导入 Swift?

    我正在尝试导入libjingle peerconnection框架到我的 Xcode 项目中 但由于某种原因 我无法使用以下命令导入 Objective C 标头import RTCICEServer在 Swift 源文件中 我尝试使用头文
  • 尝试将 indexPath 保存到 NSUserDefaults 时出错

    我试图保存 UICollectionView 的索引路径 但出现以下错误 libc abi dylib terminating with uncaught exception of type NSException 我的代码是 保存索引路径
  • VNFaceObservation BoundingBox 在纵向模式下不缩放

    作为参考 这源于一个问题视觉API 我正在努力使用Vision通过a检测图像中的人脸VNDetectFaceRectanglesRequest 它在确定图像中正确的人脸数量并提供boundingBox对于每张脸 我的麻烦是由于我UIImag

随机推荐

  • 如何将 Next.js Link 与多个子项一起使用?

    如何使用Link在 Next js 中有多个 div 里面这个 div 我有 img 标签Link 链接的段落 链接的标题 错误 多个孩子被传递给href of article但只支持一个孩子https nextjs org docs me
  • 为什么 Xcode 中 Storyboard 的背景颜色没有改变?总是相同的灰色吗?

    因此 我已将故事板文件中默认视图的背景属性更改为与彩虹中的颜色一样多 颜色在 Xcode 中与我的按钮一起很好地显示 但是当我实际运行应用程序时 背景始终是与您从新 Xcode 项目开始时相同的 难看的 默认的灰色 Hello World
  • Cin.Ignore() 不起作用

    这里我有一个代码 cout lt lt Press Enter To Exit cin ignore 该程序将执行并等待 直到您按 Enter 键 然后它才会退出 现在看这段代码 int m cin gt gt m cout lt lt P
  • 自定义类加载器问题

    接下来的问题是 我从以下位置获取了基类加载器代码here 但我的类加载器在某种程度上是特定的 它必须能够从文件系统加载类 让我们以WinOS为例 所以在类加载器中必须有一些setAdditionalPath 方法 它设置一个路径 文件系统上
  • 将正确的 Gcode 字符串发送到串行端口?

    我正在尝试发送 gcodeg28通过线路连接到我的 RepRap 3D 打印机port Write g28 我的程序连接到正确的串行端口 但是当我尝试以字符串形式发送信息时 对 com 端口的访问被拒绝 这很奇怪 因为在向串行端口发送 Gc
  • 带有 utf-8 的 php substr() 函数在末尾留下 � 标记

    这是简单的代码
  • 动态 JSON 结构到 Java 结构

    我正在开发一个项目 使用 JSON 作为创建 Java 对象的配置框架 这也是我的第一个专业 Java 项目 来自多年的 CF PHP JS 等经验 我能找到的关于将 JSON 转换为 Java 的所有资源都基于这样的想法 您必须首先在 J
  • Neo4j 中的 64 位整数

    我在 Neo4j 文档中读到了一些地方 表明 Neo4j 支持 64 位整数 因此 我无法理解为什么我会得到大整数属性的舍入值 例如 CREATE t Test id 9223372036854775807 return t 结果是 id
  • AWS Lambda 创建函数 - 请求失败,状态代码为 403

    尝试创建新的 AWS Lambda 函数使用 root 帐户第一次使用管理控制台 我收到错误 请求失败 状态代码 403 无论我尝试了多少种不同的选择 我已经尝试更改我的区域 使用默认角色 基本 lambda 权限 新角色 现有角色以及选项
  • 如何在 iPhone 应用程序中运行时(以编程方式)切换 Wi-Fi 网络

    是否可以通过编程方式在 iPhone 应用程序中切换 WiFi 网络 在应用程序执行时 如果一个网络出现故障但仍处于连接状态 并且我想切换到另一个 Wi Fi 网络 这可能吗 您的 iPhone 应用程序不应管理 wifi 网络 如果是这样
  • Angular 2 - 将文本区域值发送到共享组件

    我在第一页中有一个文本区域 当我转到下一页时 我需要在下一页中共享的记事本组件中显示该值 但同时当我首先在共享组件中写入新信息时我需要该值并且可以保存和显示新信息 我需要使用 angular2 但无法使用 github 中的任何内容 在此处
  • IE8水平滚动条问题

    我有一个 IE8 错误的水平滚动条问题 与此类似 带溢出的 DIV auto 和 100 宽的表 不幸的是 那里建议的解决方案 缩放 1 在这里不起作用 或者我不知道如何申请 不应出现水平滚动条 它不会出现在 FF 或 Chrome 中但它
  • 在 rake 中调用 bash 别名

    我的 bashrc 中有以下命令 alias mfigpdf for FIG in fig do fig2dev L pdftex FIG FIG pdftex done for FIG in fig do fig2dev L pstex
  • Spring Boot JPA:为同一参数传递多个值 (JPQL)

    我正在使用 JPQL 在 JPA 中编写 SQL 查询CurdRepository界面 我能够使用命名参数编写多个查询 它们的工作方式就像一个魅力 但是 我的应用程序要求我将未知数量的字符串与表中的多个列进行匹配 据我所知 在 SQL 中它
  • Quartz支持在多个节点上执行一次吗?

    在我的场景中 Quartz 将嵌入在我的 Web 应用程序中运行 该应用程序将部署在两个节点上 我可以安排一个任务并使其在两个节点上仅执行一次吗 是DisallowConcurrentExecution用于此目的的注释 例如 如果我用每小时
  • 如何在 sqlite4java 中禁用自动提交?

    我最近一直在使用 sqlite4java 库 我想我已经弄清楚了 唯一困扰我的是我不知道如何使用这个库关闭自动提交 有人可以帮忙吗 代码示例将不胜感激 提前致谢 博罗 Jefromi 和 king nak 是正确的 您只需要发出开始和结束事
  • 如何在 R 中将值放在箱线图中,以表示一张图像中的多个箱线图

    我想在 R 中绘制 Delta Project Types 我有 10 个项目类型 我知道如何绘制箱线图 箱线图 Delta Project Types 但是 如何将 Fivenum 最小值 最大值 第一 第二和第三分位数 放在每个箱线图上
  • 在 Rails 应用程序中使用适用于多个模型的设备

    你好 我是 Rails 新手 我已经安装了 Rails 版本 4 我想知道我正在为老师和学生制作项目 我可以将设计宝石应用到模型老师和学生身上吗 我的项目中最重要的是教师和学生的注册表单需要不同 那么谁能告诉我如何应用设计以便可以以不同的方
  • 如何在seaborn中显示所有数字图例值

    我正在尝试创建一个sns lineplot 对于以下数据框 overs season over total runs total overs avg run 0 2008 1 703 745 0 943624 1 2008 2 923 74
  • 仅在新iPad 3上:wait_fences:未能收到回复:10004003

    所以我知道对此有很多问题 但据我所知这是一个独特的情况 所以我想我会发布它 希望这会添加一些信息 最终可以给我们一个答案 解释为什么会发生这种情况 当我的设备旋转时 我收到错误 wait fences 无法接收回复 10004003 我的动