objective-c - ios 如何到达如下图的效果
怪我咯
怪我咯 2017-04-17 17:55:31
[iOS讨论组]

如图

它的整个背景是 黑色透明度为0.5 然后只有圆形那块是没有背景色的
求解答

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(6)
伊谢尔伦

用CAShapeLayer与UIBezierPath来画。

    CGRect frame = _scanRectView.frame;
    CGFloat detaSpace = 3.f;
    frame.origin.x += detaSpace;
    frame.origin.y += detaSpace;
    frame.size.height -= detaSpace * 2.0;
    frame.size.width -= detaSpace * 2.0;

    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:_scanBgView.bounds cornerRadius:0];
    UIBezierPath *rectPath = [UIBezierPath bezierPathWithRect:frame];
    [path appendPath:rectPath];
    [path setUsesEvenOddFillRule:YES];

    CAShapeLayer *fillLayer = [CAShapeLayer layer];
    fillLayer.path = path.CGPath;
    fillLayer.fillRule = kCAFillRuleEvenOdd;
    fillLayer.fillColor = [UIColor colorWithWhite:0.0 alpha:0.8].CGColor;
    fillLayer.opacity = 0.5;

    [_scanBgView.layer addSublayer:fillLayer];

这是我用到的画方形的代码。

天蓬老师

可以画一个圆角啊

高洛峰

最简单的方法:
叫 UI 给你一个背景半透明,中间一个透明圆的图片。。。2333

巴扎黑

有很多上传头像的库,里面就有解决方案。

巴扎黑

找你们设计师 给你出一张png,中间透明,其他部分半透明。这样最快 其他的你可以考虑layer的图形绘制 具体方法,估计你应该知道

阿神

如果尺寸小的话可以设layer的半角,如果尺寸大的话CAShapeLayer。如果最省事的话管UI要

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号