viewDidLoadでは、問題なくグラデーションを作成できます。
CAGradientLayer *blueGradient = [[CAGradientLayer layer] retain];
blueGradient.frame = CGRectMake(gradientStartX,gradientStartY,gradientWidth,gradientHeight);
ここで、gradientWith は、必要に応じて 320 または 1024 としてデバイス定義されます。
私ができないのは、 willRotateToInterfaceOrientation内でサイズを変更することです: - したがって、ユーザーが横向きモードに変更した後、右側の空の黒いスペースを取り除きます。(ナビゲーション バーとタブ バーは適切に動作します。)
(1) 新しい中間点に従ってグラデーションの新しい次元を再調整すること、(2) kCALayerMaxXMargin を使用すること、(3) 境界を使用することは、すべてうまくいくように見えました。境界は少し直感的に見えたので、それを試しました。
進歩がゼロであることを認めたくありません。
私は、self、view、layer、bounds、blueGradient、および CGRect(gradientStartX,gradientStartY,newGradientWidth,newGradientHeight) のすべての順列を試して成功するという力ずくの方法に還元されたと言うでしょう。
これは難しくありません。私の理解不足がそれを難しくしています。「そこにいた、それをやった」という人はいますか?