在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) 的每一种排列的蛮力方法,但成功率为零。
这并不难。我缺乏理解使它变得困难。那里有人“去过那里,做过”吗?