CAGradientLayer没有自动调整大小 [英] CAGradientLayer not autoresizing

查看:105
本文介绍了CAGradientLayer没有自动调整大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在UIImageView上添加了一个CAGradientLayer。我已经在UIImageView上设置了自动调整遮罩,使其在所有边界都是灵活的(灵活的高度,宽度等等)。但是,当我调整UIImageView大小时,我在imageView上添加的渐变层不会调整大小。为什么是这样?这是代码:

I added a CAGradientLayer on my UIImageView. I've set the autoresizing mask on the UIImageView to be flexible all across border (flexible height, width..etc). However the gradient layer that I added on top of my imageView doesnt resize when the UIImageView resizes. Why is this? Here's the code:

CAGradientLayer *imgOverlay = [CAGradientLayer layer];
        CGColorRef startBlueColor = [UIColor colorWithRed:23/255.f green:171/255.f 
                                                     blue:219/255.f alpha:0.8].CGColor; 
        CGColorRef endBlueColor = [UIColor colorWithRed:23/255.f green:171/255.f 
                                                   blue:219/255.f alpha:0.5].CGColor;     
        imgOverlay.colors = [NSArray arrayWithObjects:
                             (id) startBlueColor,
                             (id) endBlueColor,
                             nil];

        imgOverlay.locations = [NSArray arrayWithObjects:
                                [NSNumber numberWithFloat:0.0],
                                [NSNumber numberWithFloat:1.0],
                                nil];

        imgOverlay.startPoint = startPoint;
        imgOverlay.frame = self.backgroundImageView_.bounds;
        imgOverlay.endPoint = endPoint;
        self.imageOverlay = imgOverlay;
        [self.backgroundImageView_.layer addSublayer:self.imageOverlay];


推荐答案

CALayer不支持在iOS上自动调整大小。您必须在layoutSubviews中或在适当的位置手动实现调整大小。

CALayer does not support auto resizing on iOS. You must implement your resizing manually in layoutSubviews or wherever appropriate.

这篇关于CAGradientLayer没有自动调整大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆