UIButton.titleLabel 阴影正在剪裁

Posted

技术标签:

【中文标题】UIButton.titleLabel 阴影正在剪裁【英文标题】:UIButton.titleLabel shadow is clipping 【发布时间】:2012-11-29 08:29:08 【问题描述】:

因为 UIButton.titleLabel.shadowOffset 属性使阴影锐利,我改变了 drawTextInRect 方法来创建半​​径如下的自定义阴影:

CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
float colorValues[] = 0, 0, 0, opacity;
CGColorRef shadowColor = CGColorCreate(colorSpace, colorValues);
CGSize shadowOffset = CGSizeMake(offsetX, offsetY);
CGContextSetShadowWithColor (context, shadowOffset, radius, shadowColor);

这很好用。它会产生阴影。我更改了 titleLabel 的边界并调用了 drawTextInRect 方法,例如:

button.titleLabel.bounds = CGRectMake(button.titleLabel.bounds.origin.x, button.titleLabel.bounds.origin.y, button.titleLabel.bounds.size.width, button.titleLabel.bounds.size.height);
[button.titleLabel drawTextInRect:button.titleLabel.bounds];
[button setNeedsLayout];

由于 titleLabel 的边界,阴影被剪裁了。

任何帮助将不胜感激...

【问题讨论】:

【参考方案1】:

您是否尝试过对图层进行相同操作。我认为它会解决您的问题,并且可能不需要您所做的。

简单地说,为你的按钮创建 layer(CALayer) 对象并使用你需要的任何属性。记住,使用 layer 你需要导入 QuartzCore 框架。

试试吧,如有任何问题,请大喊大叫。

【讨论】:

以上是关于UIButton.titleLabel 阴影正在剪裁的主要内容,如果未能解决你的问题,请参考以下文章

旋转 UIButton titleLabel 而不剪裁

UIButton titleLabel 文本底部到其框架

UIButton.titleLabel.frame.size 始终为零值

使用 minimumScaleFactor 时 UIButton titleLabel 未垂直居中

iOS Xcode:UIButton titleLabel 颜色不断变化

带有文本笔画/轮廓的 UIButton