2011-03-23 70 views
1

我有一個自定義UIView,它實現了drawRect以使用漸變背景和邊緣周圍的1像素黑色邊框以及一些文本呈現自身。在自定義繪製視圖中動畫大小更改的問題

在我父視圖控制器,我試圖從原來的尺寸小到全屏動畫自定義查看,使用此代碼:在我的自定義視圖僅

[UIView beginAnimations:nil context:NULL]; 
CGRect screenRect = [[UIScreen mainScreen] applicationFrame]; 
CGRect detailRect = CGRectOffset(screenRect, 0, -screenRect.origin.y); 
[dayDetail.view setFrame:detailRect]; 
[UIView commitAnimations]; 

這工作,但drawRect最初創建視圖時調用一次。因此,調整大小隻需要原始小圖像並將其全屏顯示,因此全尺寸視圖的邊框現在是多個像素而不是一個,並且文本的大小也得到了擴展。

有沒有什麼辦法可以設置這個,所以drawRect被連續調用,因爲視圖是從小到全屏動畫的?基本上,我希望我的自定義渲染代碼能夠處理視圖的外觀,而不管它在任何時間點的大小。

回答

2

我有完全相同的問題,這是我如何解決它:

dayDetail.view.contentStretch = CGRectMake(0.5, 0.5, 0.0, 0.0); 

這隻會拉長中央像素。閱讀文檔以瞭解如何修改該行爲。你當然可以問我,但閱讀文檔可能會更快。此外,我可能會引用文檔。

+0

有趣的,我會試試這個。 – MusiGenesis 2011-03-23 15:10:59

+0

@MusiGenesis有用嗎? – 2011-03-31 20:41:08