我使用PaintCode繪製了一個圖像。該圖像有一個Scale變量。在標記爲「// A」的行上,我編輯了通常的PaintCode生成的代碼,以便我可以傳遞一個縮放比例,並以正確的高度和寬度創建圖像。當我縮放時,我想以正確的縮放級別從PaintCode向圖像視圖提供新圖像
public class func imageOfMap(scale scale: CGFloat = 1) -> UIImage {
UIGraphicsBeginImageContextWithOptions(
CGSizeMake(scale*1660, scale*1832), // A
false, 0)
MapStyleKit.drawMap(scale: scale)
let imageOfMap = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return imageOfMap
}
現在我有一個UIImageView裏面的UIScrollView。而且我的scrollview約束在ViewController視圖的內部,並且使用自動佈局約束將imageview約束到scrollview的內部。
我已經看過「viewForZooming」和「scrollViewDidZoom」,但那些只在圖像視圖上使用CGAffineTransformScale。我已經嘗試在「scrollviewDidZoom」中設置正確的圖像,並嘗試使用我自己的捏手勢識別器,但我的數學必須是錯誤的,但我不知道在哪裏。
每次我縮放時,我都想以正確的縮放級別從PaintCode提供一幅新圖像。
此外,我想讓圖像「保持原樣」,正如人們在縮放Google地圖或Apple地圖時所期望的那樣。現在我試圖將scrollView的contentOffset乘以contentSize,scrollView的框架和當前比例的倍數,並且圖像在縮放時會跳躍很多。
我做了大量的研究和修補,並沒有能夠弄清楚這一點。所以我終於在這裏問。請幫忙!感謝您的時間。