ios - 用UIImage和UIButton画出的按钮,使用透明的png图片,为什么会出现白边
迷茫
迷茫 2017-04-17 10:57:45
[iOS讨论组]

我们使用下面这个图片作为按钮图片,这个图片的边缘没有任何白色的像素

但是最后显示的效果确是

这是放大后的效果,实际效果就是显示出两个很醒目的白点,我不知道这两个白点是如何出现的,原图中并没有

UIImage *btnImage = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"button-add" ofType:@"png"]];

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.bounds = CGRectMake(0, 0, btnImage.size.width, btnImage.size.height);
[btn setImage:faceImage forState:UIControlStateNormal];

以上是我用来画按钮的代码,是否针对透明的png图片,还有一些特殊的设置?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
黄舟

虽然不知道原因,但是经尝试,在做图片的时候把背景图层的颜色去掉能解决问题(尽管这个图层在导出时我们根本就没让它显示出来)。我是在改一个mac app的图标的时候发现这个问题的,见图:
白边版:

正常版:

解决方式:

改好以后从dock上移除一下图标就Ok了,dock会对图标文件缓存

天蓬老师
UIButton *btn = [[UIButton alloc] initWithFrame:
                   CGRectMake(0, 0,
                              btnImage.size.width,
                              btnImage.size.height)];
[btn setImage:faceImage forState:UIControlStateNormal];

Frame在最开始的时候弄进去,不要后来设置bounds

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

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