Dim*_*ris 59 iphone objective-c shadow uilabel iphone-sdk-3.0
我知道iPhone上开箱即用的UILabel不支持柔和阴影.那么实现我自己的最佳方式是什么?
编辑:
显然我会UILabel
继承并绘制-drawRect:我的问题是,我如何将标签的内容作为图形并在它们周围绘制,模糊它们等等......
编辑2:
一年后我回到了这个问题.与此同时,我构建了一个类,允许您轻松地向标签添加柔和阴影并调整其半径等,并在文本本身上绘制渐变.你可以在GitHub上找到它:https://github.com/doukasd/iOS-Components/tree/master/Views
IlD*_*Dan 189
从3.2开始,SDK中直接支持阴影.
label.layer.shadowColor = [label.textColor CGColor];
label.layer.shadowOffset = CGSizeMake(0.0, 0.0);
Run Code Online (Sandbox Code Playgroud)
导入<QuartzCore/QuartzCore.h>
和播放一些参数:
label.layer.shadowRadius = 3.0;
label.layer.shadowOpacity = 0.5;
Run Code Online (Sandbox Code Playgroud)
并且,如果您发现您的阴影被标签边界剪切:
label.layer.masksToBounds = NO;
Run Code Online (Sandbox Code Playgroud)
终于定了
label.layer.shouldRasterize = YES
Run Code Online (Sandbox Code Playgroud)
小智 38
我建议你使用UILabel的shadowColor和shadowOffset属性:
UILabel* label = [[UILabel alloc] init];
label.shadowColor = [UIColor whiteColor];
label.shadowOffset = CGSizeMake(0,1);
Run Code Online (Sandbox Code Playgroud)
Ste*_*fan 17
除了IIDan的回答:出于某些目的,有必要设置
label.layer.shouldRasterize = YES
Run Code Online (Sandbox Code Playgroud)
我认为这是由于用于渲染阴影的混合模式.例如,我有一个深色背景和白色文本,并希望使用黑色阴影发光"突出显示"文本.直到我设置这个属性才行.
在视图的图层上应用(柔和)阴影,如下所示:
UILabel *label = [[UIabel alloc] init];
label.layer.shadowColor = [[UIColor whiteColor] CGColor];
label.layer.shadowOpacity = 1.0;
Run Code Online (Sandbox Code Playgroud)
为了使事情保持最新:在Swift中创建阴影就像这样简单:
导入QuartzCore Framework
import QuartzCore
Run Code Online (Sandbox Code Playgroud)
并将阴影属性设置为您的标签
titleLabel.shadowColor = UIColor.blackColor()
titleLabel.shadowOffset = CGSizeMake(0.0, 0.0)
titleLabel.layer.shadowRadius = 5.0
titleLabel.layer.shadowOpacity = 0.8
titleLabel.layer.masksToBounds = false
titleLabel.layer.shouldRasterize = true
Run Code Online (Sandbox Code Playgroud)
小智 5
_nameLabel = [[UILabel alloc] initWithFrame:CGRectZero];
_nameLabel.font = [UIFont boldSystemFontOfSize:19.0f];
_nameLabel.textColor = [UIColor whiteColor];
_nameLabel.backgroundColor = [UIColor clearColor];
_nameLabel.shadowColor = [UIColor colorWithWhite:0 alpha:0.2];
_nameLabel.shadowOffset = CGSizeMake(0, 1);
Run Code Online (Sandbox Code Playgroud)
我认为你应该使用[UIColor colorWithWhite:0 alpha:0.2]来设置alpha值.
归档时间: |
|
查看次数: |
100049 次 |
最近记录: |