在我的应用程序中,我有一个小的子视图,我想在右下角系绳,并允许仅垂直移动固定距离。
我有一些代码允许它被拖动,但没有进一步的限制:
- (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上四处寻找并尝试了几种方法,但唯一有效的方法没有考虑到对角线的移动,我找不到任何关于将它绑定到一个位置的东西。
所以有人知道如何做到这一点?非常感谢
编辑:此外,是否有人知道这种性质的主题的一个好的,信息丰富的参考文档(除Apple之外)?答案 0 :(得分:1)
你可以在视图拖动代码中添加一行,说明keyview.centre.y是否小于某个阈值(你希望它停在哪里),然后不要在它下面改变它。例如
keyView.centre = CGPointMake(keyView.center.x,
keyView.center.y - translation.y < threshold ? threshold : keyView.center.y);
还删除对x参数的更改以阻止它沿对角线方向移动。