在 uibutton 上应用阴影使按钮文本模糊

Posted

技术标签:

【中文标题】在 uibutton 上应用阴影使按钮文本模糊【英文标题】:Applying shadow on uibutton Makes the button text blury 【发布时间】:2016-06-06 10:56:32 【问题描述】:

这是我在使用 .XIB 文件创建的 uibutton 上添加阴影的代码

UIBezierPath *shadowPathEndbtn = [UIBezierPath bezierPathWithRect:CGRectMake(0,  self->_navigationView.frame.size.height - 70,[UIScreen mainScreen].bounds.size.width , 2)];
    self->_EndButton.layer.masksToBounds = NO;

    self->_EndButton.layer.shadowColor = [UIColor blackColor].CGColor;
    self->_EndButton.layer.shadowOffset = CGSizeMake(0.0f, 5.0f);
    self->_EndButton.layer.shadowOpacity = 0.7f;
    self->_EndButton.layer.shouldRasterize = YES;
    self->_EndButton.layer.shadowPath = shadowPathForEndbtn.CGPath;

我可以使用此代码设置阴影,但此代码使我的按钮文本看起来模糊。我无法弄清楚这背后的确切原因。任何帮助表示赞赏!

【问题讨论】:

【参考方案1】:
self->_EndButton.layer.masksToBounds = false            
self->_EndButton.layer.shadowColor = [UIColor blackColor].CGColor
self->_EndButton.layer.contentsScale = [[UIScreen mainScreen]scale];
self->_EndButton.layer.shadowOpacity = 0.7f;
self->_EndButton.layer.shadowRadius = 10.0;
self->_EndButton.layer.shadowOffset = CGSizeMake(0,0)

这会产生阴影,而且测试也不模糊

【讨论】:

是什么让按钮文字看起来模糊? 阴影路径,由于 UIBezierPath 导致文字模糊【参考方案2】:

设置按钮背景颜色

self.EndButton.BackgroundColor=[UIColor WhiteColor];

【讨论】:

以上是关于在 uibutton 上应用阴影使按钮文本模糊的主要内容,如果未能解决你的问题,请参考以下文章

IOS给UIButton添加阴影

Swift - 如何使 UIButton 仅在附加的图像上点击交互并忽略透明部分

Swift - UI 按钮阴影渐变

带有自定义阴影图像的 UIButton

为视图应用阴影使我的文字模糊

如何使 UIButton 看起来像电子邮件链接按钮?