【发布时间】:2015-08-12 19:07:44
【问题描述】:
我不能为按钮的不同状态使用图像,因为每次我都有不同的文本。
从什么开始?我试图了解 CoreGraphics 和 CoreAnimation,但示例和教程太少,所以我的尝试没有给我任何成功。
【问题讨论】:
我不能为按钮的不同状态使用图像,因为每次我都有不同的文本。
从什么开始?我试图了解 CoreGraphics 和 CoreAnimation,但示例和教程太少,所以我的尝试没有给我任何成功。
【问题讨论】:
您可以并且应该为此使用图片。 UIKit 有一个方法resizableImageWithCapInsets 可以创建可调整大小的图像。你给它一个最小尺寸的图像,系统会拉伸它以适应所需的尺寸。看起来您的图像的高度是固定的,这很好,因为您无法使用此技术进行平滑渐变。
【讨论】:
UIButtons 由背景图像和标题文本组成,因此您可以使用图像作为背景形状 (setBackgroundImage(_:forState:)),然后使用 setTitle(_:forState:) 更改文本。
但是,您仍然可以为此使用 Core Graphics,这样做有很多好处,例如它可以减少应用程序包中渲染资源的数量。为此,最好的方法可能是创建一个CAShapeLayer,其路径由UIBezierPath 构成,然后将其渲染到图形上下文中。在此上下文中,您可以提取一个 UIImage 实例,并将其视为从 JPEG 或 PNG 资源加载的图像(即使用 setBackgroundImage(_:forState:) 将其设置为按钮背景图像)。
【讨论】: