我正在尝试创建一个UIView子类("GradientView"),它将用各种颜色的渐变填充自己.我通过添加CAGradientLayer作为UIView层的子层来实现它.
它看起来不错,但是当屏幕旋转时,它没有调整渐变层的大小.有没有运气的层上找到一个布尔属性来进行切换,我推翻在GradientView layoutSubviews.
-(void)layoutSubviews {
self.gradientLayer.frame = self.bounds;
}
Run Code Online (Sandbox Code Playgroud)
这很有效,但在设备旋转动画期间,GradientView背后的东西仍然可见.什么是"自动调整大小",这样的动画是光滑的(像UIView的自动尺寸),其CAGradientLayer匹配其父层的边界的最简单的方法?
当我发现在iPhone/iPad上为我的UIViews添加阴影是多么容易时,我感到非常兴奋.
只需在Xcode中添加框架,将导入添加到文件顶部:
#import <QuartzCore/QuartzCore.h>
Run Code Online (Sandbox Code Playgroud)
然后呢:
self.contentView.layer.shadowRadius = 3.0;
self.contentView.layer.shadowOffset = CGSizeMake(-2.0, -3.0);
self.contentView.layer.shadowOpacity = 0.5;
self.contentView.layer.shadowColor = [UIColor blackColor].CGColor;
Run Code Online (Sandbox Code Playgroud)
虽然这确实在我的应用程序中创建了一个美丽的阴影,但是当显示视图时它现在也会落后于死...即使在调试器外部启动时也是如此.有没有我忘记的东西,或者这种方法对大型观点不实用?
作为参考,我在这里发布了一个截图.