2012-02-07 64 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