使用设置了角半径的 UIButton 时出现奇怪的伪影

Posted

技术标签:

【中文标题】使用设置了角半径的 UIButton 时出现奇怪的伪影【英文标题】:Strange artifacts when using UIButton with corner radius set 【发布时间】:2013-08-29 15:52:29 【问题描述】:

我使用的是标准 UIBUtton,我在其中设置边框宽度和角半径,例如

[button1.layer setCornerRadius: 15.0];
[button1.layer setMasksToBounds:TRUE];
[button1.layer setBorderWidth: 8.0];

如您所见,按钮的圆角周围出现了奇怪的伪影。除了手动绘制按钮之外,还有什么方法可以摆脱它们?

【问题讨论】:

【参考方案1】:

我不确定为什么会发生这种情况,可能有更简单的解决方案,但您可以使用 CAShapeLayer 蒙版在特定形状内渲染图像。

有关如何操作的代码,请参阅此答案。 https://***.com/a/18515698/2700842

【讨论】:

【参考方案2】:

归根结底,对我有用的解决方案是将按钮的边框宽度设置为 0,然后简单地将它们绘制在白色背景视图上以适当的偏移量。无法利用 UIButton 的边框来处理每个按钮周围的空白间距,但工件显然已经消失了。

【讨论】:

以上是关于使用设置了角半径的 UIButton 时出现奇怪的伪影的主要内容,如果未能解决你的问题,请参考以下文章

在 django 中导入设置时出现奇怪的错误

仅将角半径设置为 UIView/UIButton 的特定侧

尝试使用 CAAnimationGroup 放大和缩小 UIButton 时出现问题

使用 UIBezierPath 将半径设置为某些角并向自定义 UIButton 添加阴影

为基于 flex 框的进度条设置动画时出现一个奇怪的故障

设置沙盒测试员帐户时出现“无效年份”错误