Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在另一个视图中滚动UIScrollView时,滚动UIScrollView的速度更快_Ios_Swift_Uiscrollview_Uiimageview_Uiscrollviewdelegate - Fatal编程技术网

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))
        }

    ...