ios - 如何使对象可拖动?

标签 ios objective-c uitouch

嘿伙计们,我想知道是否有办法让像 UIImageView 这样的对象可以拖动。我知道 UITouch 和触摸,即

-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *drag=[[event allTouches] anyObject];
    player.center=[drag locationInView:self.view];
}

但通过这种方式,用户可以使对象跳过屏幕到达他或她触摸屏幕的位置,但我希望用户必须手动将对象拖过屏幕。

请用代码解释,让我知道是否需要更具体或更清楚...

最佳答案

你可以这样做:

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *aTouch = [touches anyObject];
    CGPoint location = [aTouch locationInView:self.view];

    if(CGRectContainsPoint(self.playerView.frame,location)) {
        [UIView beginAnimations:@"Dragging A DraggableView" context:nil];
        self.playerView.center = location;
        [UIView commitAnimations];
    }

}

这应该会给你一个流畅的动画。

关于ios - 如何使对象可拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22693224/

相关文章:

ios - iOS Message App Extension插入标签错误代码6

ios - iOS8 核心位置有问题

objective-c - 在某些 View 中捕获屏幕上任意位置的触摸事件?

objective-c - NSMenuItem 焦点/翻转通知

ios - 当用户通过语音输入时,应用程序崩溃 uitextview

swift - 在 View 的不同部分点击时如何执行不同的功能?

iphone - 如何获取 UIButton 中的点击次数?

ios - SwiftUI 组合 : @Published is only available on properties of classes

ios - 我们可以在单元测试时检查 uitextfield 的验证吗?

ios - fprintf 导致设备崩溃但模拟器不崩溃?