如果我理解正確,您希望能夠放大和縮小滾動視圖,而其上的所有可視對象仍然「錨定」到其位置。我建議你使用UIScrollView
的zoomScale
屬性,它告訴你乘數應該應用到滾動視圖的內容位置。
說,最初你有一些對象(UIImage
,例如)與它的center
在x = 100.0
,y = 100.0
和zoomScale = 1.0
。定義一些常量/變量來存儲這些座標(例如,我們稱它們爲initialX
和initialY
)。然後你跟蹤zoomScale
值UIScrollViewDelegate
協議的- scrollViewDidZoom:
方法,並簡單地乘以初始(不是當前!)座標與zoomScale
的值。
E.g. (調整你的代碼):
#pragma mark - UIScrollViewDelegate
- (void)scrollViewDidZoom:(UIScrollView *)scrollView
{
CGFloat currentScale = scrollView.zoomScale;
// Adjust object's position.
CGPoint currentCenter = yourObject.center;
currentCenter.x = initialX * currentScale;
currentCenter.y = initialY * currentScale;
yourObject.center = currentCenter;
}
希望這會有所幫助。
好吧,我標記你的答案,這也是解決方案。但在我的情況下,我通過重新調整框架來處理它,而不是移動中心。 –