【发布时间】:2014-01-23 21:33:45
【问题描述】:
我想用CAGradientLayer 为不同尺寸的多个视图创建一个颜色渐变。我不知道如何单独定义框架:
UIColor *darkOp = [UIColor colorWithRed:0.2f green:0.2f blue:0.27f alpha:1.0];
UIColor *lightOp = [UIColor colorWithRed:0.36f green:0.35f blue:0.42f alpha:1.0];
// Create the gradient
CAGradientLayer *gradient = [CAGradientLayer layer];
// Set colors
gradient.colors = [NSArray arrayWithObjects:
(id)darkOp.CGColor,
(id)lightOp.CGColor,
nil];
//set radius
gradient.cornerRadius = 5.0;
// Set bounds BUT just for one view size
gradient.frame = self.numberRegionView.bounds; //<-- here I can just define one frame size
// Add the gradient to one view
[self.numberRegionView.layer insertSublayer:gradient atIndex:0];
//but how to add the gradient layer to views with different sizes ???
//[self.graphRegionView.layer insertSublayer:gradient atIndex:0]; ???
//[self.barRegionView.layer insertSublayer:gradient atIndex:0]; ???
谢谢!
【问题讨论】:
-
为什么不为每个新的视图/尺寸创建一个新的渐变层呢?我不确定是否要重新使用 CAGradientLayer。
-
谢谢Putz,这肯定行得通,但我希望找到一种解决方案,可以避免多次重复相同的代码。
-
我将发布一些代码作为答案,以表明它并不是真正重复的代码。随心所欲地使用它。
标签: ios uiview cagradientlayer