[英]Issue with Dropping point in Swift
我有一个表格视图和表格视图之外,我有一个表格视图之外的视图。 我正在尝试将元素从表视图拖放到 Drop 视图。 视图看起来像这样。
有一个如图所示的表视图。 我想要完成的是,当用户长按表格视图中的一行时,我需要将所选项目拖放到可放置区域中。 长按我创建行的快照并添加为子视图,现在我试图将子视图拖到放置区域中。 我无法做到这一点。 谁能帮我解决这个问题。
var stateDropBoard = CGRectContainsPoint(ingBoardDropView.frame, touchPoint)
if(stateDropBoard)
{
print("DROPPED")
}
我无法让它工作。 有什么方法可以完成我正在做的事情。
在您的父视图上使用触摸结束方法。 在此方法中运行测试以检查用户是否已将项目放在您的绿色视图之上。
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
CGPoint location = [[touches anyObject] locationInView:self.view];
CGRect fingerRect = CGRectMake(location.x-5, location.y-5, 10, 10);
for(UIView *view in self.view.subviews){
CGRect subviewFrame = view.frame;
if(CGRectIntersectsRect(fingerRect, subviewFrame)){
// this is your touched view
}
}
}
这是您问的快速版本! 几乎没有优化。
override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first! as UITouch
let location = touch.locationInView(self.view)
let hitTest = self.targetView.hitTest(location, withEvent:event )
if (hitTest != nil) {
print("User finished touch inside your target view!")
}else{
print("User finished touch outside your target view");
}
}
注意:确保为目标视图设置了正确的约束。
我想你可以从这里拿走它。 希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.