UIScrollview zoomToRect当前可见视图的中心

时间:2017-08-01 20:25:08

标签: ios swift

我有一个显示图像的UIScrollView。我想以编程方式放大到当前可见区域中心附近的某个地方(不一定要精确)。如何获得此rect的坐标以与zoomToRect一起使用?请注意,此图像可能已经放大,只显示了scrollView内容区域的一小部分。

enter image description here

2 个答案:

答案 0 :(得分:1)

该图像的X和Y位置相对于滚动视图的contentSize。屏幕上显示的区域由滚动视图contentOffset定义。

然后,您可以在屏幕上显示滚动视图的位置以及屏幕上选择矩形的位置。

最后,您需要使用上述值对X和Y进行相当简单的数学运算(一些加法/减法)。

答案 1 :(得分:0)

抓住UIImageView' frame并致电insetBy(dx:dy:)

  

返回一个小于或大于源的矩形   矩形,具有相同的中心点。

这是PlayGround中的快速可视化:

let blueSquare = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300))
let yellowSquare = UIView(frame: blueSquare.frame.insetBy(dx: 100, dy: 100))
blueSquare.backgroundColor = .blue
yellowSquare.backgroundColor = .yellow
blueSquare.addSubview(yellowSquare)

会导致这个:

enter image description here