在我的应用中,我有一个小的子视图,我想将其绑定在右下角,并允许仅垂直移动固定距离。
我有一些代码可以拖动它,但没有其他限制:
- (void)viewDragged:(UIPanGestureRecognizer *)gesture
{
CGPoint translation = [gesture translationInView:keyView];
// move view
keyView.center = CGPointMake(keyView.center.x + translation.x,
keyView.center.y + translation.y);
// reset translation
[gesture setTranslation:CGPointZero inView:keyView];
}
我环顾了StackOverflow,并尝试了几种方法,但是唯一可行的方法没有考虑对角线移动,而且在将其束缚到一个点时我找不到任何东西。
那么,有谁知道该怎么做?非常感谢
编辑:另外,有人知道这种性质的主题的参考文献很好(苹果公司除外)吗?
最佳答案
您可以在视图拖动的代码中添加一行代码,该代码说keyview.centre.y小于某个阈值(您希望它停止的位置),然后不要在其以下更改。例如。
keyView.centre = CGPointMake(keyView.center.x,
keyView.center.y - translation.y < threshold ? threshold : keyView.center.y);
还要删除对x参数的更改以使其停止沿对角线移动。
关于ios - iOS:可拖动的UIView(仅限垂直),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13241421/