是否可以在iOS中仅制作UITableViewCell渐变的一半或半层?
我正在使用以下代码。
-(void) addGradient:(UITableViewCell *) _button {
// [self removeGradient:_button];
// Add Border
CALayer *layer = _cell.layer;
layer.cornerRadius = 4.0f;
layer.masksToBounds = YES;
layer.borderWidth = 1.0f;
layer.borderColor = [UIColor colorWithWhite:0.5f alpha:0.2f].CGColor;
// Add Shine
CAGradientLayer *shineLayer = [CAGradientLayer layer];
shineLayer.frame = layer.bounds;
shineLayer.colors = [NSArray arrayWithObjects:
(id)[UIColor colorWithWhite:1.0f alpha:0.0f].CGColor,
(id)[UIColor colorWithWhite:1.0f alpha:0.0f].CGColor,
(id)[UIColor colorWithWhite:0.75f alpha:0.0f].CGColor,
(id)[UIColor colorWithWhite:0.4f alpha:0.0f].CGColor,
(id)[UIColor colorWithWhite:1.0f alpha:1.0f].CGColor,
nil];
shineLayer.locations = [NSArray arrayWithObjects:
[NSNumber numberWithFloat:0.0f],
[NSNumber numberWithFloat:0.5f],
[NSNumber numberWithFloat:0.5f],
[NSNumber numberWithFloat:0.8f],
[NSNumber numberWithFloat:1.0f],
nil];
[layer addSublayer:shineLayer];
}
我在cellForRowAtIndexPath方法中调用此方法。在这里,我将梯度效果完全设置到细胞的底部。但我只需要左半部分的UITableViewCell具有渐变效果。是否可以这样做?
由于
答案 0 :(得分:0)
创建另一个UIView,其框架占据UITableViewCell的一半,使用您拥有的代码段将渐变设置为该视图。
将UIView作为子视图添加到UITableViewCell。
//Considering cell is the tableviewcell
UIView *leftHalf = [[UIView alloc] initWithFrame:CGRectMake(0,0,cell.frame.size.width/2,cell.frame.size.height)];
[self addGradient:leftHalf]; //Assuming the method can take UIView as param.
[cell addSubView: leftHalf];