iPhone拖放
Posted
技术标签:
【中文标题】iPhone拖放【英文标题】:iPhone drag/drop 【发布时间】:2010-11-02 01:08:58 【问题描述】:尝试为 iPhone 应用程序实现一些基本的拖放功能。
我当前尝试执行此操作的代码如下:
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self];
self.center = location;
这段代码的结果是被触摸的 UIView 在跟随触摸时闪烁。玩了一会儿之后,我还注意到 UIView 似乎从屏幕上的 0,0 位置闪烁到当前触摸的位置。
任何想法我做错了什么?
【问题讨论】:
这是在哪个视图中?您的应用中有哪些视图? 应用程序使用单个视图进行渲染,并带有用于交互组件的子视图。此代码位于继承自 UIImageView 的类实现中。 【参考方案1】:center 属性需要在超级视图的坐标系中指定,但是您已经根据子视图向触摸事件询问了位置。而是根据 superview 的坐标请求它们,如下所示:
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self.superview]; // <--- note self.superview
self.center = location;
【讨论】:
似乎太明显的解决方案错过了它,愚蠢的我。明天检查一下,然后将结果回复您,谢谢!以上是关于iPhone拖放的主要内容,如果未能解决你的问题,请参考以下文章
iPhone 4 iOS 5 高级ScrollView 技术:长按拖放按钮
iPhone 6S plus 和 iPhone 7 plus 中的启动图像问题