自定义绘制的 UIButton
Custom Drawn UIButton
我需要一个在中间绘制自定义颜色的圆形 UIButton,以及一个绘制为默认色调颜色的外环(类似于 UIColorWell)。
我尝试了几种不同的方法:
- 使用多色 SFSymbol:这将是一个优雅的解决方案,但据我所知,无法将色调颜色仅应用于图像的一部分,同时将中心设置为自定义颜色。要么对整个图像进行着色,要么将图像绘制为符号文件中设置的默认颜色。此外,我需要支持 iOS 14,而 可能 允许我完成此操作的新分层选项已添加到 iOS 15.
- 设置各种层属性(即 cornerRadius、borderColor 等):这可行并且可能是一个不错的后备解决方案,但我无法获得我想要的外观(即,具有透明外边框和内部彩色圆圈之间的环)。
如果有使用上述任何一种方法的方法,请不吝赐教!任何一个似乎都是比以下更好的解决方案:
- 重载绘图功能:这是我目前要使用的选项,因为它允许我对按钮的外观进行完全的创意控制。 post 的其余部分将与此方法有关。
到目前为止,我已经能够完全按照我的意愿绘制按钮。但是,我无法弄清楚如何根据各种状态变化适当地绘制按钮。
例如,如果显示弹出窗口,所有普通按钮都会自动重新绘制为禁用状态。但是,我的自定义按钮没有重绘,因此我无法响应状态更改。
点击按钮也是如此 - 普通按钮会以强调的颜色短暂显示,但我的自定义按钮没有响应。
有人有关于如何支持覆盖各种状态的 UIButton 绘图的示例吗?
我能够通过重写 tintColorDidChange
来获得所需的行为,以触发按钮的重绘。现在我能够以正确的颜色绘制外环(包括在显示弹出窗口时变灰),同时保持所需的内部颜色。
我需要一个在中间绘制自定义颜色的圆形 UIButton,以及一个绘制为默认色调颜色的外环(类似于 UIColorWell)。
我尝试了几种不同的方法:
- 使用多色 SFSymbol:这将是一个优雅的解决方案,但据我所知,无法将色调颜色仅应用于图像的一部分,同时将中心设置为自定义颜色。要么对整个图像进行着色,要么将图像绘制为符号文件中设置的默认颜色。此外,我需要支持 iOS 14,而 可能 允许我完成此操作的新分层选项已添加到 iOS 15.
- 设置各种层属性(即 cornerRadius、borderColor 等):这可行并且可能是一个不错的后备解决方案,但我无法获得我想要的外观(即,具有透明外边框和内部彩色圆圈之间的环)。
如果有使用上述任何一种方法的方法,请不吝赐教!任何一个似乎都是比以下更好的解决方案:
- 重载绘图功能:这是我目前要使用的选项,因为它允许我对按钮的外观进行完全的创意控制。 post 的其余部分将与此方法有关。
到目前为止,我已经能够完全按照我的意愿绘制按钮。但是,我无法弄清楚如何根据各种状态变化适当地绘制按钮。
例如,如果显示弹出窗口,所有普通按钮都会自动重新绘制为禁用状态。但是,我的自定义按钮没有重绘,因此我无法响应状态更改。
点击按钮也是如此 - 普通按钮会以强调的颜色短暂显示,但我的自定义按钮没有响应。
有人有关于如何支持覆盖各种状态的 UIButton 绘图的示例吗?
我能够通过重写 tintColorDidChange
来获得所需的行为,以触发按钮的重绘。现在我能够以正确的颜色绘制外环(包括在显示弹出窗口时变灰),同时保持所需的内部颜色。