• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - UIPanGestureRecognizer 超越极限

[复制链接]
菜鸟教程小白 发表于 2022-12-13 04:22:35 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个用户可以放大的波形,我有一个编辑微调器,我想随波形一起展开和平移。

我可以让编辑修剪器展开和平移,但是当我平移时我遇到了一个问题:当编辑器达到我为其设置的范围时,它会震动并移动得比预期的更远到。

这是我的代码:

- (IBAction)handleWaveformPanGestureUIPanGestureRecognizer *)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 是用户放大时在波形结束时看不到的样本。所以我的约束设置如下如果用户没有放大,编辑器不会移动。

除了当编辑器和波形达到其中一个约束时,一切都很好,然后编辑器在左侧稍微向后摇晃,在前面稍微向前摇晃。它就像编辑器有一点自己的动力一样。

有什么想法吗?谢谢。



Best Answer-推荐答案


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

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

{CGRectGetMinX(rect) + editor.size.width*0.5,CGRectGetMaxX(rect) - editor.size.widht*0.5}

关于ios - UIPanGestureRecognizer 超越极限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27683518/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap