Vấn đề với giải pháp @Vladimir là nó sẽ hiển thị sai visibleRect nếu viewForZoom nhỏ hơn giới hạn scrollview. Vì vậy, tôi đã đưa ra giải pháp này.
- (CGRect) zoomedFrame{
CGRect zoomedFrame;
zoomedFrame.origin = self.contentOffset;
zoomedFrame.origin.x -= zoomingView.frame.origin.x;
zoomedFrame.origin.y -= zoomingView.frame.origin.y;
zoomedFrame.size = self.contentSize;
return zoomedFrame;
}
zoomingView
là chế độ xem trả về phương pháp viewForZoomingInScrollView:
.
bounds
là giới hạn của scrollView.
Vì vậy, có hai trường hợp:
Khi zoomingView
nhỏ hơn bounds
, contentOffset
phản ánh không phải là góc trên cùng bên trái của xem nội dung, nhưng một số sự thay đổi kỳ lạ của nội dung quan điểm tương đối đến trung tâm của bounds
. Và zoomingView.frame.origin
có các giá trị bình thường như nếu zoomingView
nằm ở trung tâm của bounds
. (điều này xảy ra nếu bạn cố gắng thu nhỏ zoomingView hơn minimulScale
)
Khi zoomingView
là bigget hơn bounds
, zoomingView.frame.origin
có giá trị kỳ lạ như thế này:
{-6.15367e-06, 3,98168 e-06}
Và contentOffset
hiển thị nội dung số should.
Vì vậy, tất cả những gì bù đắp nhau như tôi đã giới thiệu trong mã của tôi.
cảm ơn bạn, đã làm việc như mong đợi :) – Manny
Sẽ đánh giá cao nếu bạn để lại một số nhận xét về câu trả lời của tôi. – DanSkeel