Ios 在另一个视图中滚动UIScrollView时,滚动UIScrollView的速度更快
我有一个Ios 在另一个视图中滚动UIScrollView时,滚动UIScrollView的速度更快,ios,swift,uiscrollview,uiimageview,uiscrollviewdelegate,Ios,Swift,Uiscrollview,Uiimageview,Uiscrollviewdelegate,我有一个uicrollview大UIImageView,图像分辨率非常高(约10000 x 10000)。在此UIImageView中,缩放和滚动都已启用。我还有一个更小的UIImageView,具有更小分辨率的相同图像(约100 x 100)。我正在较小的UIImageView上显示较大的UIImageView的可见部分。通过在较小的UIImageView上平移,用户可以在较大的UIImageView上导航到其他地方。下面的图片显示了我试图解释的内容。我的问题是,在较小的UIImageView
uicrollview
大UIImageView
,图像分辨率非常高(约10000 x 10000)。在此UIImageView
中,缩放和滚动都已启用。我还有一个更小的UIImageView
,具有更小分辨率的相同图像(约100 x 100)。我正在较小的UIImageView
上显示较大的UIImageView
的可见部分。通过在较小的UIImageView
上平移,用户可以在较大的UIImageView
上导航到其他地方。下面的图片显示了我试图解释的内容。我的问题是,在较小的UIImageView上平移时,在较大的UIScrollView中滚动的速度非常慢。
在应用用户输入的实时转换时,不应设置内容偏移量更改的动画,因为这很容易减慢反馈速度 改变
tiledScrollView.setContentOffset(offset, animated: true)
到
我不完全确定您希望如何实现这一点,但如果您希望减慢或加快平移手势的转换,请添加一个乘数
switch gesture.state {
case .began:
gesture.setTranslation(CGPoint.zero, in: gesture.view)
case .changed:
gesture.setTranslation(CGPoint.zero, in: gesture.view)
if someView.frame.origin.y < someThreshold {
someView.center = CGPoint(x: someView.center.x, y: someView.center.y + (translation.y * 0.25))
}
...
切换手势.state{
案例.开始:
手势.setTranslation(CGPoint.zero,in:手势.view)
案例。更改:
手势.setTranslation(CGPoint.zero,in:手势.view)
如果someView.frame.origin.y
在这里,任何超过
someThreshold
的向上平移速度都要慢4倍。在您的情况下,显然要添加一个大于1的乘数。我尝试了这个方法,但没有得到期望的结果。问题是,当我们输入平移手势时,较大的视图不会将可视区域转换为期望的区域。
tiledScrollView.setContentOffset(offset, animated: false)
switch gesture.state {
case .began:
gesture.setTranslation(CGPoint.zero, in: gesture.view)
case .changed:
gesture.setTranslation(CGPoint.zero, in: gesture.view)
if someView.frame.origin.y < someThreshold {
someView.center = CGPoint(x: someView.center.x, y: someView.center.y + (translation.y * 0.25))
}
...