iOS 里怎样最简单地实现一个全屏,边缘半透明灰的弹出层

 我来答
好程序员
2016-12-06 · HTML5前端培训/大数据培训/Java
好程序员
好程序员是IT高端课程培训基地,从平凡到卓越,为梦想而拼搏。
向TA提问
展开全部
直观上来看,通过一个UIView配合图片,或者半透明的颜色都可以,这样的确可以简单的实现这个过程。
但是比较推荐使用通过Quartz 2D去实现这个功能,涉及到图片素材的加载,还是有性能影响的。IO过程耗费比较高。
贴一个实现:
- (void)drawRect:(CGRect)rect

{

CGContextRef context = UIGraphicsGetCurrentContext();

CGRect currentBounds = self.bounds;

CGGradientRef backgroundGradient;

size_t num_locations = 2;

CGFloat locations[2] = { 0.0, 1.0 };

CGFloat components[8] = { 0.0, 0.0, 0.0, 0.0, // Start color

0.0, 0.0, 0.0, 0.6

}; // End color

CGColorSpaceRef rgbColorspace = CGColorSpaceCreateDeviceRGB();

backgroundGradient = CGGradientCreateWithColorComponents (rgbColorspace, components, locations, num_locations);

CGPoint centerPoint = CGPointMake(CGRectGetMidX(currentBounds), CGRectGetMidY(currentBounds));

CGContextDrawRadialGradient (context, backgroundGradient, centerPoint, 0.0, centerPoint, currentBounds.size.width, kCGGradientDrawsAfterEndLocation);

CGGradientRelease(backgroundGradient);

}
在UIView子类的drawRect中实现即可。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式