使用 iOS 6.0 SDK 并针对 iOS 5 Target 进行构建会导致 UIScrollView setMinimumZoomScale 在 iOS 5 模拟器上运行时失败

2023-12-22

i upgraded to Xcode 4.5 and have started using the iOS SDK 6.0: enter image description here

我有一个使用 Xcode 4.4 和 iOS SDK 5.1 开发的通用应用程序

它已经在所有经过测试的设备和模拟器上运行,没有出现任何故障。

为了让它继续在 iPhone 5 上运行,我想提供正确的启动图像并让它运行。

应用程序的许多部分无需更改即可工作,但其中一部分不能:我放置在 UIScrollView 中的图像无法平移。这以前一直有效,但在 iOS 6 模拟器上不起作用。

不过,问题的真正症结在于:当我在 iOS 5.0 或 iOS 5.1 模拟器上运行时,在我的调试日志中,我看到抛出如下异常:

-[NSKeyValueMethodSetter setMaximumNumberOfTouches:]: unrecognized selector sent to instance 0x6ddab20

堆栈抓取显示尝试进行此调用的代码是UIScrollView setMinimumZoomScale.

我调用 setMimimumZoomScale 的代码如下:

    CGFloat widthScale = self.scrollView.bounds.size.width / self.image.size.width;
    CGFloat heightScale = self.scrollView.bounds.size.height / self.image.size.height;

    // just reset the zoom scales; leave center and everything else where possible
    self.scrollView.minimumZoomScale = MIN(1.0, MIN(widthScale, heightScale));
    self.scrollView.maximumZoomScale = 4.0;

抛出的异常(以及随后的崩溃)发生在第一次调用 setMimimumZoomScale 并显示上述消息时。

我猜测 Xcode 4.5 正在使用 setMinimumZoomScale 的代码来调用发送该消息,该消息可能存在于 iOS 6 的库中,但在 iOS 5 中从未出现过。

其他人也看到类似的问题吗?

fwiw,我还没有触及我的 .storyboard 文件,因此它们仍然可以在没有 autoLayout 的情况下工作。

我是否必须返回并在 Xcode 4.5 旁边安装 Xcode 4.4 才能继续允许维护我的工作应用程序?


回答我自己的问题……

我最初问题的复杂性涉及额外的手势识别器。

在 iOS 5.1 SDK(以及更早版本)下,可以向 UIScrollView 添加手势识别器,并能够使其与内置于 UIScrollView 中的 panGestureRecognizer 和捏GestureRecognizer 结合使用。

在 iOS 6.0 SDK 下,显然不再真正支持这种行为。这相关文件 http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIScrollView_Class/Reference/UIScrollView.html与其说明确禁止该行为,不如说它定义了 UIScrollView 对于可能与平移和捏合相关或无关的触摸执行的操作。

由于滚动视图没有滚动条,因此它必须知道触摸信号是否表示滚动意图或跟踪内容中的子视图的意图。为了做出此确定,它通过启动计时器来临时拦截触地事件,并在计时器启动之前查看触摸手指是否进行任何移动。如果计时器在位置没有显着变化的情况下触发,则滚动视图会将跟踪事件发送到内容视图的触摸子视图。如果用户在计时器结束之前将手指拖动得足够远,则滚动视图将取消子视图中的任何跟踪并自行执行滚动。子类可以重写touchesShouldBegin:withEvent:inContentView:、pagingEnabled和touchesShouldCancelInContentView:方法(由滚动视图调用)来影响滚动视图处理滚动手势的方式。

为了纠正这个问题,我必须确保故事板中的手势识别器不再是与滚动视图关联的集合的一部分,而是将它们与滚动视图的内容视图相关联。

(就我而言,为了做到这一点,我必须使用手动添加它们addGestureRecognizer:对于我感兴趣的每个手势识别器,因为内容视图适用于故事板时未知的图像。)

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

使用 iOS 6.0 SDK 并针对 iOS 5 Target 进行构建会导致 UIScrollView setMinimumZoomScale 在 iOS 5 模拟器上运行时失败 的相关文章

  • GeoFire Swift 3 - 保存和更新坐标

    我正在尝试使用 GeoFire 将坐标存储到 Firebase 数据库中 我不确定如何更新新坐标 因为它们每秒都会更改 更新 随着childByAutoId 它正在为每辆自行车生成一个新的唯一 ID 如何引用这个唯一的自行车 ID 例如 用
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • UIView晃动动画

    我试图在按下按钮时使 UIView 摇动 我正在调整我找到的代码http www cimgf com 2008 02 27 core animation tutorial window shake effect http www cimgf
  • 在 UIScrollview 上显示缩略图的最佳方法是什么(从服务器下载)

    我想在 UIScrollview 如照片应用程序 上显示许多图像 作为缩略图 所有图像将从服务器下载 据我所知 有几种选择 1 通过创建 UIImageviews 然后将它们添加为主滚动视图上的子视图 2 通过子类化一个UIView类 然后
  • 如何检测用户是否第一次打开应用程序[重复]

    这个问题在这里已经有答案了 是否可以检测用户是否是第一次打开iOS应用程序 使用Objective C 我想在用户第一次打开应用程序时显示欢迎消息 但之后不再向他们显示 我正在寻找类似的东西 BOOL firstTime AppDelega
  • 如何动态获取 UITableViewCell 的高度

    我创建了自定义的tableViewCell 我在UITableViewCell中添加了UIView SubView 所以我在 UIView 中的所有动态文本和图像内容都会根据文本和图像大小而变化 但现在 HeightforRowAtInde
  • 如何使用 alamofire 通过基本身份验证上传图像?

    我正在尝试使用 alamofire 4 7 1 和此代码上传图像 但说实话 我怀疑我没有编写正确的代码来上传图像 func uploadDefect defectRemark String defectLocation String def
  • 从未调用过交互式委托方法

    我想在 ViewController 1 和 NavigationViewController 2 之间进行交互式转换 NavigationController 通过按钮调用 因此呈现时没有交互转换 它可以通过按钮或 UIPanGestur
  • Flutter 应用程序在 iOS 平台的 firebase 电话身份验证中崩溃

    我在我的项目中实现了 Firebase Phone auth 在 Android 端 一切正常 但对于 iOS 端 当我尝试从我的端发送验证码时 应用程序崩溃并失去连接 我已在下面提交了我的代码 主程序 dart class MyApp e
  • 如何在 iOS 13 中将 UISegmentedControl 的背景颜色设置为白色

    iOS 13 对 UISegmentedControl 进行了一些更改 包括切换所选片段时的非常漂亮的动画 但是我注意到它没有显示backgroundColor属性正确 它似乎总是有一点色彩 我见过回答如何设置的问题selectedSegm
  • 在 WKWebView 中禁用缩放?

    有谁知道在 WKWebView 中禁用双击和捏缩放的简单方法 我尝试过的任何方法都不起作用 Webview scrollView allowsMagnification false Error value of type WKWebView
  • 未知异常和崩溃

    当我尝试快速滚动表格视图或从远程重新加载数据时 我的应用程序崩溃了 当我先进行远程获取然后滚动表格视图时 一切似乎都工作正常 我不知道下面的崩溃日志意味着什么 它只是有时工作正常 有时崩溃 Incident Identifier 710A1
  • AVAudioPlayer 无法从网站播放 m4a 或 mp3 文件类型

    我试图在我的应用程序中找到一个仅纯 m4a 声音的 URL 我有音频的 URL 理论上可以下载它 然后 使用下载的文件URL到声音 我尝试使用AVAudioPlayer播放它 但它不播放任何声音 这是我的代码 在 URL 检索函数中 我调用
  • GLKit的GLKMatrix“列专业”如何?

    前提A 当谈论线性存储器中的 列主 矩阵时 列被一个接一个地指定 使得存储器中的前 4 个条目对应于矩阵中的第一列 另一方面 行主 矩阵被理解为依次指定行 以便内存中的前 4 个条目指定矩阵的第一行 A GLKMatrix4看起来像这样 u
  • 有没有办法在 onclick 触发时禁用 iPad/iPhone 上的闪烁/闪烁?

    所以我有一个有 onclick 事件的区域 在常规浏览器上单击时 它不会显示任何视觉变化 但在 iPad iPhone 上单击时 它会闪烁 闪烁 有什么办法可以阻止它在 iPad iPhone 上执行此操作吗 这是一个与我正在做的类似的示例
  • 上传存档错误:“缺少 iOS 发行版签名身份......”

    我正在尝试使用 Xcode 将我的 iOS 应用程序存档上传到 iTunes Connect 但是当我单击 上传到 App Store 时 出现错误 Xcode 尝试查找或生成匹配的签名资产并 由于以下问题未能做到这一点 缺少 iOS 为
  • Unwind segue 的用途是什么以及如何使用它们?

    iOS 6 和 Xcode 4 5 有一个称为 Unwind Segue 的新功能 展开转场可以允许过渡到故事板中场景的现有实例 除了 Xcode 4 5 发行说明中的 这个简短条目之外 UIViewController 现在似乎还有几个新
  • Fitbit oauth2 公共 API 停止工作。给出错误 - 抱歉,这不是你..是我们

    几个月前 我准备了一个关于 Fitbit oauth2 公共 API 的演示 其中我使用特定用户登录并获取他的活动 一切正常 但最近 我打开演示并尝试使用同一用户登录 但它没有登录并反复出现此错误 我尝试更改在 Fitbit 上注册的演示应
  • 如何在 UITableView 的 switch 语句中创建变量?

    我正在构建一个包含三个部分的 tableView 我已经完成了前两个工作 但最后一个有点阻力 我的问题似乎涉及尝试在 switch 语句中声明变量 实际上是嵌套的 switch 语句 据我所知 这不是一个好主意 但在这种情况下 这似乎是唯一
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 对于 Perl 开发的理想 Vim 配置,您有何建议?

    有很多关于如何配置的线程Vim GVim http www vim org 用于 Perl 开发在 PerlMonks org 上 http www google com search q vimrc site 3Aperlmonks or
  • 进行同步 JavaScript 调用的技巧 [重复]

    这个问题在这里已经有答案了 JavaScript 在大多数现代 API 中使用异步调用来处理磁盘 IO 和网络等 慢 事物 我意识到这样做的目的是什么 但是在某些情况下确实需要进行同步调用 例如 我有一段无法重写的 JavaScript 代
  • 输入类型=“按钮”的 onClick 函数不起作用

    我有这段代码 单击 获取更多字段 按钮将创建整个 div 的副本并创建字段 但点击按钮后什么也没有发生 所有其他按钮都工作正常 不知道我做错了什么 提前感谢您的帮助 div style display none div
  • 使用 Jersey 1.x 进行自定义注释注入

    我使用的是球衣 1 9 1 我有如下休息方法 授权标头包含编码凭据 例如用户名 和密码 并在方法中解析并映射本地值 PUT Path SystemConstants REST MESSAGE SENDSMS Consumes MediaTy
  • 使用 MSAL 对 Azure 静态 Web 应用中的函数进行授权

    我正在尝试使用 Azure AD 和 MSAL 对使用 Azure 静态 Web 应用创建和公开的 Azure 函数进行身份验证和授权 如果我将应用配置为使用较旧的 AAD v1 流 但不使用 MSAL 则用户可以成功访问 API 设置 用
  • 如何用Delphi计算当前日期的日出和日落时间

    我需要在给定特定纬度和经度的情况下并使用 Delphi 我正在使用 XE2 确定当天的日出和日落时间 当地时间 我找到了本文 http en wikipedia org wiki Sunrise equation并使用了系统工具库 http
  • “无法计算表达式...”错误

    在 Visual Studio 2010 beta 2 中调试应用程序时 突然出现以下错误 无法评估表达式 因为 线程停止在某个点 垃圾收集是不可能的 可能是因为代码是 优化 监视窗口中的几乎每个属性或字段都会显示此消息 有谁知道发生了什么
  • 当我们可以解析线性回归时为什么要梯度下降

    在线性回归空间中使用梯度下降有什么好处 看起来我们可以用分析方法解决这个问题 找到最小成本函数的theta0 n 那么为什么我们仍然想使用梯度下降来做同样的事情呢 谢谢 当您使用正规方程为了分析求解成本函数 您必须计算 其中 X 是输入观测
  • LinearLayout 的边距,以 dp 编程

    是否可以以编程方式设置 LinearLayout 的边距 但不能使用像素 而是使用 dp 您可以使用显示指标 http developer android com intl de reference android util Display
  • 如何在 cakephp 中设置默认时区?

    所以我的系统已经基本完成 只是解决了一些最后的错误 我们遇到一个问题 该程序似乎永久设置在纽约时区 我在 core php 和 bootstrap php 中都有这行代码 date default timezone set Australi
  • 在 Android 中自定义 Google SignInButton

    我想在 Android 中自定义 Google 登录按钮 目前我使用以下代码有一个非常基本的默认布局
  • 使用 SQL LAG 函数计算股票收益

    我有一张股票价格表 我正在尝试计算每日回报 Ticker Date price ABC 01 01 13 100 00 ABC 01 02 13 101 50 ABC 01 03 13 99 80 ABC 01 04 13 95 50 AB
  • struts2 中的日期验证

    我正在创建一个表单 用户将在其中注册 struts2 应用程序 用户需要输入特定格式的日期 由于我不打算使用 datepicker ajax 标签 因此我使用带有日期标签的文本字段 格式如下
  • 如何在 OS X 中获取当前前台应用程序的名称或 PID?

    我需要在 OS X 中获取当前前台应用程序的名称或 PID 如何使用终端获取它 您可以使用 lsappinfo 命令从终端找到此信息 手册页详细介绍了该工具可以返回的大量信息 为了获取最前面的应用程序 您可以使用 front 参数调用 ls
  • endl 操纵器在哪里定义

    我们知道endl是操纵器 它在内部放置 n 缓冲然后刷新缓冲区 哪里endl定义 什么是endl 是宏 函数 变量 类还是对象 我该如何定义自己的endl操纵者 cout lt lt hello lt lt endl what is end
  • 如何处理 AWS Glue 中映射函数中的错误?

    我正在使用mapDynamicFrame 的方法 或者等效地 Map apply方法 我注意到我传递给这些函数的函数中的任何错误都会被默默地忽略 并导致返回的 DynamicFrame 为空 假设我有一个这样的作业脚本 import sys
  • 禁用命令按钮时,PrimeFaces 6.2 命令按钮标题不起作用

    环境 JSF 2 2 14 PrimeFaces 6 2 我的命令按钮设置如下 当按钮被禁用时 标题将在 PF6 1 中显示 悬停时 但不会在 PF6 2 中显示
  • 模块在本地声明组件,但未导出

    我创建了一个共享模块并声明并导出了其他模块中我需要的组件 import NgModule from angular core import CommonModule from angular common import DateslideC
  • 硒点击坐标没有点击预期的位置

    我需要屏幕抓取使用 ActiveX 控件进行导航的网页 这不是用于用户界面测试目的 而是用于从遗留应用程序下载数据 我遇到的问题是顶部导航是带有 javascript 的完整 ActiveX 不可能通过任何方式获取元素 所以我试图在坐标上单
  • 使用 iOS 6.0 SDK 并针对 iOS 5 Target 进行构建会导致 UIScrollView setMinimumZoomScale 在 iOS 5 模拟器上运行时失败

    i upgraded to Xcode 4 5 and have started using the iOS SDK 6 0 我有一个使用 Xcode 4 4 和 iOS SDK 5 1 开发的通用应用程序 它已经在所有经过测试的设备和模拟