首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIPanGestureRecognizer超越极限

UIPanGestureRecognizer超越极限
EN

Stack Overflow用户
提问于 2014-12-29 12:44:51
回答 1查看 130关注 0票数 2

我有一个用户可以放大的波形,我有一个编辑修剪器,我想要与波形一起展开和平移。

我可以让编辑修剪器展开和平移,但当我平移时,我遇到了一个问题:当编辑器到达我为它设置的边界时,它会比它应该移动的距离更远一点。

下面是我的代码:

代码语言:javascript
复制
- (IBAction)handleWaveformPanGesture:(UIPanGestureRecognizer *)recognizer {

CGPoint translation = [recognizer translationInView:self.waveform];


if (self.waveform.zoomStartSamples > 0 && self.waveform.zoomEndSamples < self.waveform.totalSamples) {

    editor.center = CGPointMake(editor.center.x + translation.x, editor.center.y);
    [leftHandle setCenter:CGPointMake(editor.frame.origin.x, editor.center.y)];
    [rightHandle setCenter:CGPointMake((editor.frame.origin.x+editor.frame.size.width), editor.center.y)];
}

[recognizer setTranslation:CGPointZero inView:self.waveform];

}

zoomStartSamples是当用户放大时在波形开始处看不到的波形样本,而zoomEndSamples是当用户放大时在波形结束处看不到的样本。因此,我的约束设置为,如果用户没有放大,编辑器就不会移动。

除了编辑器和波形到达其中一个约束,然后编辑器在左侧稍微向后抖动,在前面稍微向前抖动时,一切都很好。它的行为就像编辑器有它自己的势头。

有什么想法吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-01-06 21:49:13

因为编辑器有它自己的大小。它应该在更受约束的“空间”中移动。

假设你已经允许了rect,在这种情况下,编辑器的移动所允许的x大小是:

代码语言:javascript
复制
{CGRectGetMinX(rect) + editor.size.width*0.5,CGRectGetMaxX(rect) - editor.size.widht*0.5}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27683518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档