在UITableViewCell中的UITextView上使用CAGradientLayer

时间:2014-06-30 21:08:39

标签: ios objective-c uitableview uiview cagradientlayer

我在可折叠的UITextView中有一个TableViewCell。 在UITextView我希望CAGradientLayer淡出上面的底部文字。

我在UIView中加了UITextView。这都在单元格中

UIView in Cell

我不知道如何在单元格或视图控制器中设置代码。

我的测试代码来自Github:Fun with Mask by Ewan Davids.

[self createGradientMask];

我应该在哪里放置(void)方法?在TableViewCellViewController

    - (void)createGradientMask
        {
            //creating our gradient mask
        CAGradientLayer *maskLayer = [CAGradientLayer layer];

        //this is the anchor point for our gradient, in our case top left. setting it in the middle (.5, .5) will produce a radial gradient. our startPoint and endPoints are based off the anchorPoint
        maskLayer.anchorPo = CGPointZero;

        //The line between these two points is the line our gradient uses as a guide
        //starts in bottom left
        maskLayer.startPoint = CGPointMake(0.0f, 1.0f);

        //ends in top right
        maskLayer.endPoint = CGPointMake(1.f, 0.0f);

        //setting our colors - since this is a mask the color itself is irrelevant - all that matters is the alpha. A clear color will completely hide the layer we're masking, an alpha of 1.0 will completely show the masked view.
        UIColor *outerColor = [UIColor colorWithWhite:1.0 alpha:0.0];
        UIColor *innerColor = [UIColor colorWithWhite:1.0 alpha:1.0];

        //an array of colors that dictatates the gradient(s)
        maskLayer.colors = @[(id)outerColor.CGColor, (id)outerColor.CGColor, (id)innerColor.CGColor, (id)innerColor.CGColor];

        //these are percentage points along the line defined by our startPoint and endPoint and correspond to our colors array. The gradient will shift between the colors between these percentage points.
        maskLayer.locations = @[@0.0, @0.15, @0.5, @1.0f];

        maskLayer.bounds = CGRectMake(0, 0, CGRectGetWidth(self.view.bounds), 

    CGRectGetHeight(self.view.bounds));

            self.underTextView.layer.mask = maskLayer;
        }
  • TableViewCell中,我无法识别view属性。
  • ViewController我无法识别UITextView property

已添加QuartzCore.framework。

1 个答案:

答案 0 :(得分:1)

将渐变代码放在tableview数据源方法中:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // code to customize cell here
}

此时有机会自定义单元格视图,例如颜色,文本,图层和子视图等......