它應該工作,如果你把它放在viewDidAppear。但是,將大小設置爲self.view.bounds只會使漸變進入屏幕底部 - 滾動時,漸變將隨滾動。如果您希望漸變的長度與表視圖一樣長,則必須將其高度設置爲contentSize的高度。您還需要設置單元格的背景顏色清楚地看到梯度(中的tableView:willDisplayCell:forIndexPath :)
這種方法
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
CAGradientLayer *bgGradient = [CAGradientLayer layer];
bgGradient.frame = CGRectMake(self.tableView.bounds.origin.x, self.tableView.bounds.origin.y, self.tableView.bounds.size.width, self.tableView.contentSize.height);
bgGradient.colors = @[(id)[[UIColor colorWithRed:150/255.0 green:2150/255.0 blue:233/255.0 alpha:1.0] CGColor], (id)[[UIColor colorWithRed:208/255.0 green:210/255.0 blue:216/255.0 alpha:1] CGColor]];
bgGradient.locations = @[@0.02f,@1.00f];
[bgGradient setMasksToBounds:YES];
[self.view.layer insertSublayer:bgGradient atIndex:0];
}
的一個問題是,長度,因而看,的漸變將取決於表格視圖中的行數。如果您希望漸變保持相同的長度,您可能需要將其添加到窗口中(並使表視圖的背景顏色清晰)。
你從哪裏調用這段代碼?插入漸變圖層後添加表格視圖嗎? –
在viewDidLoad –
中調用通過故事板添加tableView –