【发布时间】:2017-12-12 11:33:48
【问题描述】:
我有一个UIScrollView 和大UIImageView,图像分辨率非常高(约10,000 x 10,000)。在这个UIImageView 中,缩放和滚动都启用了。我也有一个较小的UIImageView,具有相同的图像,但分辨率要小得多(大约 100 x 100)。我在较小的UIImageView 上显示较大的UIImageView 的可见部分。并且用户可以通过在较小的UIImageView 上平移来导航到较大的UIImageView 上的其他地方。下图显示了我要解释的内容。我的问题是在较小的 UIImageView 上平移时,在较大的 UIScrollView 中滚动真的很慢。
// function that handles the pan on green view
func handlePanNavigation(gestureRecognizer: UIPanGestureRecognizer) {
if gestureRecognizer.state == .began || gestureRecognizer.state == .changed {
let translation = gestureRecognizer.translation(in: navigationPanel)
guard let gv = gestureRecognizer.view else { return }
let point = CGPoint(x: gv.center.x + translation.x, y: gv.center.y + translation.y)
gestureRecognizer.view?.center = point
gestureRecognizer.setTranslation(.zero, in: navigationPanelView)
let transform = CGAffineTransform(scaleX: orgSize.width*tiledScrollView.zoomScale/navSize.width, y: orgSize.height*tiledScrollView.zoomScale/navSize.height)
let offset = navigationPanelView.frame.origin.applying(transform)
tiledScrollView.setContentOffset(offset, animated: true)
}
}
【问题讨论】:
标签: ios swift uiscrollview uiimageview uiscrollviewdelegate