【发布时间】:2013-03-12 23:03:35
【问题描述】:
我正在向视图添加CAGradientLayer。当视图自动调整大小时(例如旋转后),渐变层不会调整大小。可以将渐变设置为与视图相同的自动调整大小吗?另请注意,我在视图中使用了自动布局约束。
这就是我正在做的事情:
CAGradientLayer *gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = CGRectMake(0.0, 0.0, frame.size.width, frame.size.height);
gradientLayer.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithRed:255.0/255.0f green:255.0/255.0f blue:255.0/255.0f alpha:1.0f] CGColor],
(id)[[UIColor colorWithRed:233.0/255.0f green:233.0/255.0f blue:233.0/255.0f alpha:1.0f] CGColor], nil];
[self.layer insertSublayer:gradientLayer atIndex:0];
【问题讨论】:
-
@CodaFi 略有不同的问题。此外,尽管该问题有一个公认的答案,但对于这种情况似乎没有用。
-
你说得对,这个答案毫无价值。覆盖
-layoutSubviews并在那里分配你的框架。
标签: ios objective-c cocoa-touch cocoa cagradientlayer