2011-05-27 104 views
0

我想要從屏幕上移除UIWebview的動畫。我正在使用動畫塊將幀高設置爲0.這很好,問題在於Web視圖的內容大小會立即採用新的幀高度。所以內容消失了,背景變成了動畫。我怎麼能阻止這種情況發生?這是我的動畫塊。在不改變內容大小的情況下更改UIWebView框架

// Change frame height. 
[UIView animateWithDuration:1.0f 
       animations:^ { 
        // Animate the frame to the full height 
        self.frame = CGRectMake(self.frame.origin.x, self.frame.origin.y, self.frame.size.width, 0); 
       } 
]; 

感謝

+0

也許而非縮小尺寸,你應該只通過改變origin.x值滑出屏幕的看法? – lxt 2011-05-27 21:23:28

+0

我希望內容保持原樣。就好像web視圖正在縮小並縮回到屏幕頂部的工具欄中一樣。 – smokingoyster 2011-05-27 21:26:26

回答

1

所以,如果你想要的內容,以保持它在哪裏,你可能不得不「騙」這一點。

蘋果做到這一點自己對許多轉變 - 如果你去到慢動畫模式在iOS模擬器,或在Mac OS上,你可以看到它是如何工作的。不幸的是,UIWebView的自定義範圍非常有限......控制縮放的唯一屬性值爲scalesToFit值。

一種不同的方法是將UIWebView捕獲爲圖像,將webview替換爲該圖像(對用戶而言是無縫的),然後在圖像本身上執行動畫。既然你只是改變了一個簡單的圖像幀,你就不會遇到任何這些問題(你也可以改變動畫效果:如果你的圖像縮放以適應幀,內容將被「擠壓」,或者你可以裁剪它)。

+0

如何捕獲圖像中的網頁? – smokingoyster 2011-05-27 21:39:10

+0

這裏看到答案:http://stackoverflow.com/questions/4334233/how-to-capture-uiview-to-uiimage-without-loss-of-quality-on-retina-display – lxt 2011-05-27 21:43:34

+0

這是美麗的。動畫效果在哪裏?不要在UIImage或UIImageView中看到它們。 – smokingoyster 2011-05-27 22:20:25

相關問題