我收到touchesBegan的那一刻,我想删除触摸的视图和addSuperview到新的父视图,然后继续接收触摸.但是我发现有时这不起作用.具体来说,从不调用touchesMoved和touchesEnded.
有没有一个技巧使这项工作正确?这用于实现拖放行为,其中视图最初位于滚动视图内.
谢谢.
解决方法
代替:
[transferView removeFromSuperView]; [newParentView addSubview:transferView];
仅限使用:
[newParentView addSubview:transferView];
在文档中,声明“视图只能有一个超级视图.如果视图已经有超视图,并且该视图不是接收者,则此方法会在将接收器作为新的超级视图之前删除先前的超视图.”
因此,不需要使用removeFromSuperView,因为它由addSubview处理.我注意到removeFromSuperView结束任何当前的触摸而不调用touchesEnded.如果仅使用addSubview,则不会中断触摸.
原文地址:https://www.jb51.cc/iOS/332008.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。