Ios 填充uilabel、自定义uilabel的渐变时,文本将消失
我的目标是通过执行以下操作为uilabel添加渐变(CustomLabelBackGround是uilabel的子类) 但是,当我试图在屏幕上显示时,CustomLabelBackGround的文本正在消失。请参考下图:Ios 填充uilabel、自定义uilabel的渐变时,文本将消失,ios,objective-c,core-graphics,uilabel,Ios,Objective C,Core Graphics,Uilabel,我的目标是通过执行以下操作为uilabel添加渐变(CustomLabelBackGround是uilabel的子类) 但是,当我试图在屏幕上显示时,CustomLabelBackGround的文本正在消失。请参考下图: 我在这里错过了什么。如果您对此有任何想法,请提供帮助。谢谢因为您正在为UILabel实现drawRect,您拥有该图形上下文,因此您基本上是在“覆盖”文本,您也可以自己绘制该文本,或者更简单的方法是使用渐变的容器视图和带有文本的透明标签。因为您正在为UILabel实现draw
我在这里错过了什么。如果您对此有任何想法,请提供帮助。谢谢因为您正在为
UILabel
实现drawRect
,您拥有该图形上下文,因此您基本上是在“覆盖”文本,您也可以自己绘制该文本,或者更简单的方法是使用渐变的容器视图和带有文本的透明标签。因为您正在为UILabel
实现drawRect
,您拥有该图形上下文,因此您基本上是“覆盖”文本,您也可以自己绘制该文本,或者更简单的方法是使用渐变的容器视图和带有文本的透明标签。最佳方法
- 创建自定义UIView
- 在那里实现这个drawrect
- 在此UILabel类中,将该类添加为标签的背景
drawrect
方法这是最好的方法
- 创建自定义UIView
- 在那里实现这个drawrect
- 在此UILabel类中,将该类添加为标签的背景
否则,您也必须绘制标签内容,因为您要覆盖其
drawrect
方法为什么不在photoshop中预渲染渐变,然后在标签上设置:
myLabel.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"myImage"]];
为什么不在photoshop中预先渲染渐变,然后在标签上设置:
myLabel.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"myImage"]];
我想:
[super drawRect:rect];
以便在绘制其他内容之前超级绘制文本。然后,将以正常方式绘制文本,您需要调用:
[super drawRect:rect];
以便在绘制其他内容之前超级绘制文本。在标签上实现DrawRect时,将正常绘制带有的文本,您还必须绘制文本。尝试将渐变应用于UIView,并将标签置于其上或同时绘制文本。在标签上实现DrawRect时,还必须绘制文本。尝试将渐变应用于UIView并将标签置于其上,或者也可以绘制文本。或者只将常规视图连接到视图控制器并设置“插入渐变”,或者只将常规视图连接到视图控制器并设置“插入渐变”