渐变颜色不适用于SWReveal视图控制器内容视图

时间:2016-07-25 13:23:05

标签: ios gradient swrevealviewcontroller

我正在将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];

任何人都可以帮我解决这个问题。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

这是因为你在viewDidLoad中称呼它。尝试将代码替换为viewDidAppear。如果您尝试设置"菜单视图控制器"您必须知道该视图的宽度为UIScreen.mainScreen().boubds.width+20或40,我不记得:)

在我的情况下,当我在tableView.reloadData()

中拨打viewDidAppear时,渐变很好

答案 1 :(得分:0)

我通过替换

获得了解决方案
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];

我希望这会有所帮助。