gpt4 book ai didi

ios - 调用另一个对象的触摸开始 iOS

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:09 24 4
gpt4 key购买 nike

假设我有 view1 正在拦截触摸事件,而 view2 则没有。

view1 能否将这些事件传递给 view2 并调用 [view2 touchesBegin] [view2 touchesMoved]...等?

最佳答案

是的,有时,也许。您询问的技术称为事件转发。我会向您介绍 Forwarding Touch EventsEvent Handling Guide for iOS , 内容如下:

The classes of the UIKit framework are not designed to receive touches that are not bound to them; in programmatic terms, this means that the view property of the UITouch object must hold a reference to the framework object in order for the touch to be handled. If you want to conditionally forward touches to other responders in your application, all of these responders should be instances of your own subclasses of UIView.

因此,如果您希望将事件从一个 View 转发到另一个 View ,并且这两个 View 都是您自己的 UIView 子类的实例,那么事件转发可能适合您。但是,如果您的 view2 是 UIKit 类的一个实例,比如 UIScrollView 或 UITextView,那么您遇到问题就不会感到惊讶。即使它现在有效,将来也很容易崩溃。在文本的更进一步,该部分更简单地说明了这一点:

Do not forward events to UIKit framework objects.

我强烈建议您阅读整个部分——如果您决定使用事件转发,这里有一些很好的建议和示例可能会有所帮助。

关于ios - 调用另一个对象的触摸开始 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8363286/

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