裏面我的應用程序使用CAGradientLayer
設置我的手機的背景下,這樣的水平CAGradientLayer:在IOS 7.0
retValue = [tableView dequeueReusableCellWithIdentifier:@"Cells" forIndexPath:indexPath];
UIView *bgColorView = [[UIView alloc] init];
bgColorView.backgroundColor = [UIColor blueColor];
bgColorView.layer.masksToBounds = YES;
id startColor = (id)[[UIColor colorWithWhite:0.75 alpha:1] CGColor];
id endColor = (id)[[UIColor blueColor] CGColor];
CAGradientLayer* gradientLayer = [CAGradientLayer layer];
gradientLayer.frame = retValue.contentView.bounds;
gradientLayer.colors = @[startColor,startColor,endColor,endColor];
gradientLayer.locations = @[[NSNumber numberWithFloat:0],
[NSNumber numberWithFloat:0.95],
[NSNumber numberWithFloat:0.95],
[NSNumber numberWithFloat:1]];
[gradientLayer setStartPoint:CGPointMake(0,0.5)];
[gradientLayer setEndPoint:CGPointMake(1,0.5)];
[bgColorView.layer addSublayer:gradientLayer];
retValue.selectedBackgroundView = bgColorView;
(此代碼是內部- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
)
它工作正常,在iOS 6但在iOS 7上無法使用,在新iOS中梯度總是垂直的(startPoint和endPoint被忽略)
在同一問題中遇到任何人嗎?
感謝,
佩裏
請注意'[UIColor clearColor]'創建了一個奇怪的灰色細微差別。正如這個答案一樣,使用'[UIColor colorWithWhite:1.0 alpha:0.0]'代替。這會給你一個透明的漸變。 –