0

是否可以在 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 的左半部分。有可能这样做吗?

谢谢

4

1 回答 1

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];
于 2013-05-23T08:36:15.167 回答