【问题标题】:Adding Pinch/Zoom effect to a UIImageView inside a UIScrollView将捏/缩放效果添加到 UIScrollView 内的 UIImageView
【发布时间】:2023-04-11 04:34:02
【问题描述】:

我有一个非常基本的屏幕共享 iPhone 应用程序,我已经使用 UIImageViewUIScrollView 中成功地将捏合/缩放效果添加到我的应用程序中。

UIImageView 定期从 PC 接收屏幕内容。一切正常,但是一旦我滚动/捏合/缩放,它首先会起作用,但随后会停止,即使服务器仍在发送屏幕内容,更新图像视图内容的委托方法也会停止启动。整个应用程序似乎被冻结但没有错误消息/异常/无论如何。谁能帮帮我?

【问题讨论】:

  • 这可能是线程问题吗?你会更新你在主线程上的所有观点吗?
  • 更新 UIImage 视图工作正常,只要我开始捏/缩放就会出现问题
  • 如何更新image view的图片?通过捏和缩放,您的意思是您已经实现了自己的或者您是否使用了viewForZooming 方法。
  • 我有一个为我做网络工作的单例类。当接收到图像时,一个委托(我已经创建)启动,实现该委托的我的 viewController 处理更新过程。对于捏/缩放,我使用了viewForZooming 方法。
  • R u 在你的应用程序中使用任何 runloop(CADisplaylink)...

标签: iphone ios uiscrollview uiimageview nsrunloop


【解决方案1】:

如果您正在使用NSDefaultRunLoopModeUIAPPlication 添加一个运行循环模式UITrackingRunLoopMode 用于跟踪滚动视图事件,例如滚动。由于UIApplicationNSDefaultRunLoopMode 切换到UITrackingRunLoopMode,所以NSDefaultRunLoopMode 上的任何事件都不会被调用,直到UIAPPlication 切换回NSDefaultRunLoopMode

这可能是问题所在,解决方法是将 NSDefaultRunLoopMode 更改为 NSRunLoopCommonModes

如果你不确定你是否使用了你在评论中提到的运行循环。只需在您的项目中搜索 NSDefaultRunLoopMode

【讨论】:

  • 非常感谢,从 NSDefaultRunLoopMode 更改为 NSRunLoopCommonModes 解决了我的问题。
  • 我不知道如何找到 NSDefaultRunLoopMode
猜你喜欢
  • 2012-11-24
  • 2017-09-23
  • 2013-05-28
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
相关资源
最近更新 更多