渐变颜色不适用于 SWReveal 视图控制器内容视图
Gradient colour not applying to SWReveal view controller content view
我正在将 SWReveal 视图控制器内容视图作为渐变层。我试图将内容层设置为渐变层,但它不起作用。我在 SWReveal 视图 controller.m 文件中编写代码,方法是 - (void)loadView.
这是我的代码。
self.gradientLayer.frame = _contentView.bounds;
self.color1 = ((UIColor*)[UIColor colorWithRed:(3.0/255.f) green: (185.0/255.f) blue:(173.0/255.f) alpha:1.0f]);
self.color2 = ((UIColor*)[UIColor colorWithRed:(0.0/255.f) green:(172.0/255.f) blue:(220.0/255.f) alpha:1.0f]);
self.gradientLayer.colors = [NSArray arrayWithObjects:(id)self.color1.CGColor, (id)self.color2.CGColor, nil];
self.gradientLayer.locations = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0f], [NSNumber numberWithFloat:1.0], nil];
[_contentView.layer insertSublayer:self.gradientLayer atIndex:0];
谁能帮我解决这个问题。
提前致谢。
因为你在viewDidLoad
中调用了它。尝试将您的代码替换为 viewDidAppear
。如果你尝试设置 "menu view controller" 你必须知道视图有宽度 - UIScreen.mainScreen().boubds.width+20
或 40 ,我不记得了:)
在我的例子中,梯度很好,当我在 viewDidAppear
中调用 tableView.reloadData()
时
我通过替换
得到了解决方案
self.gradientLayer.locations
和
self.gradientLayer.startPoint
self.gradientLayer.endPoint
这是我将内容视图添加为渐变的完整代码
self.gradientLayer.frame = _contentView.bounds;
self.color1 = ((UIColor*)[UIColor colorWithRed:(3.0/255.f) green:(185.0/255.f) blue:(173.0/255.f) alpha:1.0f]);
self.color2 = ((UIColor*)[UIColor colorWithRed:(0.0/255.f) green:(172.0/255.f) blue:(220.0/255.f) alpha:1.0f]);
self.gradientLayer.colors = [NSArray arrayWithObjects:(id)self.color1.CGColor, (id)self.color2.CGColor, nil];
self.gradientLayer.startPoint = CGPointMake(0.2f, 1.0f);
self.gradientLayer.endPoint = CGPointMake(1.0f, 1.0f);
[_contentView.layer insertSublayer:self.gradientLayer atIndex:0];
希望对您有所帮助。
我正在将 SWReveal 视图控制器内容视图作为渐变层。我试图将内容层设置为渐变层,但它不起作用。我在 SWReveal 视图 controller.m 文件中编写代码,方法是 - (void)loadView.
这是我的代码。
self.gradientLayer.frame = _contentView.bounds;
self.color1 = ((UIColor*)[UIColor colorWithRed:(3.0/255.f) green: (185.0/255.f) blue:(173.0/255.f) alpha:1.0f]);
self.color2 = ((UIColor*)[UIColor colorWithRed:(0.0/255.f) green:(172.0/255.f) blue:(220.0/255.f) alpha:1.0f]);
self.gradientLayer.colors = [NSArray arrayWithObjects:(id)self.color1.CGColor, (id)self.color2.CGColor, nil];
self.gradientLayer.locations = [NSArray arrayWithObjects:[NSNumber numberWithFloat:0.0f], [NSNumber numberWithFloat:1.0], nil];
[_contentView.layer insertSublayer:self.gradientLayer atIndex:0];
谁能帮我解决这个问题。 提前致谢。
因为你在viewDidLoad
中调用了它。尝试将您的代码替换为 viewDidAppear
。如果你尝试设置 "menu view controller" 你必须知道视图有宽度 - UIScreen.mainScreen().boubds.width+20
或 40 ,我不记得了:)
在我的例子中,梯度很好,当我在 viewDidAppear
tableView.reloadData()
时
我通过替换
得到了解决方案self.gradientLayer.locations
和
self.gradientLayer.startPoint
self.gradientLayer.endPoint
这是我将内容视图添加为渐变的完整代码
self.gradientLayer.frame = _contentView.bounds;
self.color1 = ((UIColor*)[UIColor colorWithRed:(3.0/255.f) green:(185.0/255.f) blue:(173.0/255.f) alpha:1.0f]);
self.color2 = ((UIColor*)[UIColor colorWithRed:(0.0/255.f) green:(172.0/255.f) blue:(220.0/255.f) alpha:1.0f]);
self.gradientLayer.colors = [NSArray arrayWithObjects:(id)self.color1.CGColor, (id)self.color2.CGColor, nil];
self.gradientLayer.startPoint = CGPointMake(0.2f, 1.0f);
self.gradientLayer.endPoint = CGPointMake(1.0f, 1.0f);
[_contentView.layer insertSublayer:self.gradientLayer atIndex:0];
希望对您有所帮助。