gpt4 book ai didi

ios - 在 UIView 中拖动、捏合和缩放图像

转载 作者:行者123 更新时间:2023-12-01 19:11:20 28 4
gpt4 key购买 nike

我正在添加多个 UIImageViewUIView执行拖动、捏合和缩放图像等操作。我已将手势识别器添加到所有 UIImageViews .由于我添加了多个图像(UIImageViews),它降低了我的应用程序的性能。有没有人有更好的解决方案来执行此操作?谢谢

最佳答案

添加许多图像通常不会引起足够的问题,以至于您的应用程序会变慢。例如,为了用一个荒谬的例子来说明这一点,我添加了 250 个(!) ImageView ,每个 View 都有三个手势,它在 iPad 3 上运行良好,包括将图像动画化到它们最终的静止位置/大小/旋转。

两个观察:

  • 您是否对 ImageView 进行了计算密集型操作?例如:
  • 简单地使用 Quartz 2D 添加阴影会对性能产生巨大影响,因为它实际上在计算上非常昂贵。即使您正在使用图层阴影,也不太可能,您可以尝试使用 shouldRasterize ,这可以缓解问题,但不能解决问题。如果这是问题,还有其他(kludgy)技术可以进行计算有效的阴影。
  • 另一个令人惊讶的计算密集型过程是,如果您的图像是(例如)具有透明度设置的 PNG,或者如果您减少了 alpha/opacity为您的意见。
  • 正在加载的图像的分辨率/大小是多少?如果图像非常大, ImageView 将根据 contentMode 进行渲染。 ,但是如果您要拍摄大图像并缩小它们,它可能会非常慢。如果可能,您应该使用屏幕分辨率图像。

  • 这些只是一些看似无害的事情的例子,但实际上在计算上非常昂贵。如果你在你的 ImageView 上做任何 Quartz 装饰,我建议你暂时把它们削回去,看看你是否看到任何变化。
  • 在自己诊断性能问题方面,我建议观看以下两个 WWDC 视频:
  • WWDC 2012 - #211 - Building Concurrent User Interfaces on iOS包括一个相当实用的工具演示,以确定性能问题的根源。这段视频显然专注于一个特定的解决方案(将计算成本高昂的进程移动到后台并实现并发 UI),这可能适用于这种情况,也可能不适用,但我喜欢 Instruments 演示。
  • WWDC 2012 - #235 - iOS App Performance: Responsiveness是关于如何衡量应用程序的响应能力和解决问题的技术的更集中的讨论。我发现仪器教程不如之前的视频好,但它确实更详细。

  • 希望这能让你继续前进。如果您仍然感到困惑,您应该分享一些有关如何添加/配置 View 以及手势正在做什么的相关代码。也许您还可以澄清性能问题的性质(例如,它是否在初始再现中,是否在手势发生时帧速率较低等)。

    关于ios - 在 UIView 中拖动、捏合和缩放图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16382091/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com