我正在尝试在 Cocoa Touch 中的 UIView
的底部边缘下绘制阴影。我知道应该使用 CGContextSetShadow()
来绘制阴影,但是 Quartz 2D 编程指南有点含糊:
CGContextSetShadow
,传递适当的值。我在 UIView
子类中尝试了以下内容:
- (void)drawRect:(CGRect)rect {
CGContextRef currentContext = UIGraphicsGetCurrentContext();
CGContextSaveGState(currentContext);
CGContextSetShadow(currentContext, CGSizeMake(-15, 20), 5);
CGContextRestoreGState(currentContext);
[super drawRect: rect];
}
..但这对我不起作用,我对 (a) 下一步要去哪里和 (b) 是否需要对我的 UIView
做任何事情完成这项工作?
最佳答案
一个更简单的方法是在初始化时设置 View 的一些层属性:
self.layer.masksToBounds = NO;
self.layer.shadowOffset = CGSizeMake(-15, 20);
self.layer.shadowRadius = 5;
self.layer.shadowOpacity = 0.5;
你需要导入 QuartzCore。
#import <QuartzCore/QuartzCore.h>
https://stackoverflow.com/questions/805872/
相关文章:
ios - 如何删除 UITableView 中的空单元格?
objective-c - objectForKey 和 valueForKey 的区别?
objective-c - 如何按比例缩放 UIImageView?
objective-c - 如何纯粹用 C 编写 iOS 应用程序
objective-c - "sending ' 常量 NSString * ' to parame
objective-c - 如何在 Objective-C 中反转 NSArray?
ios - 在 Objective-C 中使用 GCD 的 dispatch_once 创建单例