2016-07-25 40 views
3

我正在將SWReveal視圖控制器內容視圖作爲漸變圖層工作。我試圖將內容層設置爲漸變圖層,但它不起作用。我在SWReveal視圖controller.m文件中編寫代碼,方法是 - (void)loadView。漸變色不適用於SWReveal視圖控制器內容視圖

這裏我的代碼是。

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

我得到了解決與

self.gradientLayer.startPoint 
self.gradientLayer.endPoint 

這裏更換

self.gradientLayer.locations 

是我完整的代碼添加內容視圖坡度

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]; 

我希望這會有幫助。

1

這是因爲你在viewDidLoad叫它。嘗試將您的代碼替換爲viewDidAppear。如果您嘗試設置爲「菜單視圖控制器」你必須知道,查看有沒有寬度 - UIScreen.mainScreen().boubds.width+20或40,我不記得了:)

在我的情況下梯度是很好,當我在viewDidAppear

調用 tableView.reloadData()
相關問題