我正在将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];
任何人都可以帮我解决这个问题。 提前谢谢。
答案 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];
我希望这会有所帮助。