2012-02-07 65 views
1

我正在開發動畫列條形圖,並且遇到了一些麻煩。 酒吧以比例動畫顯示。在開始時,所有列都有1個點的大小,並將縮放至預定義的高度。使用漸變來縮放UIView

問題是:我想在列中繪製漸變(它們是UIView的子類),並希望縮放動畫重新計算漸變。到目前爲止,我已經繪製了漸變,但是當列縮放時,漸變不會隨着漸變而縮放。 由於視圖具有1點高度,因此漸變僅顯示爲1色。

有人可以給我一個北方來解決這個問題嗎?

回答

1

解決了問題!

我使用的規模,而不是改變視圖邊界.. 當時

view.transform = CGAffineTransformMakeScale(1.0, scaleY.floatValue); 

必須

view.bounds = CGRectMake(view.bounds.origin.x, view.bounds.origin.y * scaleY.floatValue, view.bounds.size.width, view.bounds.size.height * scaleY.floatValue); 

哪裏的scaleY是以前計算是包含Y比例因子的NSNumber。 沒有必要設置

view.contentMode = UIViewContentModeRedraw; 

謝謝DarkDusk的幫助。

0

嘗試設置contentMode

myView.contentMode = UIViewContentModeRedraw; 

這將迫使所有的尺寸變化的重繪。

+0

沒有工作。讓我更好地解釋一下。我有情節區(這是一個視圖),作爲情節區的子視圖,我有列(也有視圖)。在列drawRect方法我畫梯度。設置內容模式會在每次更改尺寸時調用drawRect? – 2012-02-07 15:44:48

+0

是的,它應該在每次更改尺寸時調用'drawRect:'。添加一個'NSLog'來檢查。然後仔細檢查您的漸變圖。 – DarkDust 2012-02-07 17:45:04

+0

解決了,看到我上面的答案 – 2012-02-07 23:50:54