gpt4 book ai didi

ios - 将触摸转移到 subview

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:09:14 25 4
gpt4 key购买 nike

我有一个带有自定义单元格的 UITableView,当您触摸该单元格时,它会添加一个 UIImageView 的 subview 。

我希望图像在用户抬起手指后消失,我在 UIImageVIew subview 上有一个 touchesEnded 方法,但它从未被调用过。

仅当您抬起手指然后再次按下并松开时才会调用它。

如何在原始触摸结束时调用方法。

我有点喜欢 Snapchat 在您查看图像时的功能。

最佳答案

subview 没有收到 touchesEnded 事件的原因是它没有收到 touchesBegan 事件:这两个是成对出现的 - 无论哪个 View 开始触摸,都是将结束接触。您的 UIImageView 无法获得 touchesEnded,因为它当时不存在;当您按下并松开它时,它第二次获得 touchesEnded,因为它在这两个事件中都存在。

有几种方法可以解决这个问题:

  • 在处理添加 UIImageView 的相同位置处理 View 删除 - 当您添加 subview 时,存储一个 __weak 引用它在一个单独的变量中。当添加了 UIImageView 的 View 获得 touchesEnded 事件时,转到该变量,并删除 subview 。
  • 保持 UIImageView 在那里,但控制它的透明度 - 而不是添加和删除 subvuew,将其启动为完全透明,然后使其在触摸时不透明,然后使其成为发布时再次透明。
  • 根本不要添加临时的 UIImageView,而是使用 CALayer - 看起来您只是将 ImageView 添加到主机里面有一个图像很短的时间。有一种更简单的方法可以做到这一点——使用 CALayer。这种方法应该更容易实现,因为该层不参与触摸事件的处理。

关于ios - 将触摸转移到 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18218395/

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