1

viewDidLoad中,我可以毫无问题地创建渐变:

CAGradientLayer *blueGradient = [[CAGradientLayer layer] retain]; blueGradient.frame = CGRectMake(gradientStartX,gradientStartY,gradientWidth,gradientHeight);

其中 gradientWith 被设备定义为适当的 320 或 1024。

我不能做的是在willRotateToInterfaceOrientation内部调整它的大小: - 从而在用户更改为横向模式后摆脱右侧的空白黑色空间。(导航栏和标签栏表现得很好。)

(1) 根据新的中点重新校准梯度的新维度,(2) 使用 kCALayerMaxXMargin,以及 (3) 使用边界看起来都可以完成这项工作。bounds 看起来更直观一些,所以我尝试了一下。

我不想承认我的进步为零。

我会说我已经沦为尝试自我、视图、图层、边界、blueGradient 和 CGRect(gradientStartX,gradientStartY,newGradientWidth,newGradientHeight) 的每一种排列的蛮力方法,但成功率为零。

这并不难。我缺乏理解使它变得困难。那里有人“去过那里,做过”吗?

4

1 回答 1

0

图层会自动调整大小吗?如果是这样,简单

[blueGradient setNeedsDisplay];

应该做的伎俩。

希望这有帮助,保罗

于 2010-05-09T12:00:54.230 回答