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 App:在 UIView 中拖放图片的实现

iPhone 6S plus 和 iPhone 7 plus 中的启动图像问题

如何让 iOS 11 拖放在 iPhone 上运行

来自phonegap build的.ipa不会安装在iphone上

像iPhone上的主页按钮一样工作的按钮[关闭]