我有一個UIScrollView的要求,在縮放時,contentSize.height應該保持不變。例如,從200x100放大應該會導致新的contentSize爲400x100,而不是400x200。我想在用戶縮放時自己做繪畫。實現自定義縮放UIScrollView
我不認爲我可以使用UIScrollView的正常縮放行爲來實現這一點,所以我試圖推出自己的。 (我可以讓它做它的事情,然後重繪我的內容時,-scrollViewDidEndZooming:withView:atScale:被調用,但那不會很漂亮)。
目前我繼承的UIScrollView,並試圖在兩個手指在屏幕上做我自己變焦:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if ([touches count] != 2) {
[super touchesMoved:touches withEvent:event];
} else {
// do my own stuff
}
}
我認爲,通過重寫的touchesBegan:withEvent:,touchesMoved:withEvent:,touchesEnded:withEvent:方法並觸及取消:withEvent:這種方式應該可以工作,但事實並非如此。
一個較早的嘗試失敗是放在滾動視圖的頂部透明視窗和發送,我不感興趣,到了滾動觸摸:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
if ([touches count] != 2) {
[self.theScrollView touchesMoved:touches withEvent:event];
} else {
// do my own stuff
}
}
任何幫助,將不勝感激。
感謝, 托馬斯
好的,謝謝,我會嘗試攔截的setTransform:在夾變焦結束重繪視圖。我可能會嘗試徹底重新繪製視圖,看看性能如何。今天無法做到這一點,但我會讓你知道我是怎麼走的。 – 2009-10-07 20:05:32
我做了一個快速測試,截獲了setTransform :,並且每次嘗試重繪我的內容視圖。你是對的,出於性能原因,這不是設備上的選項。我會按照你推薦的方式讓UIScrollView縮放,然後在-scrollViewDidEndZooming:withView:atScale:處重繪。謝謝。 – 2009-10-08 22:23:48