ios - 如何在 iOS 10+ 中更换设备旋转的渐变背景
问题描述
使用 Swift 5,我正在为 UIPageControl 中的视图创建渐变背景:
var pageControl = UIPageControl()
func configurePageControl() {
self.view.applyGradient(colors: [UIColor.HL.PurpleStart,UIColor.HL.PurpleEnd])
}
效果很好......所有页面都有这个紫色渐变背景。但是当您旋转设备时,渐变会旋转,但会保持其原始大小,即之前方向的设备框架大小。
所以我只想在设备旋转时重绘渐变。我使用以下方法在设备旋转完成后成功执行:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
coordinator.animate(alongsideTransition: nil, completion: { _ in
self.view.applyGradient(colors: [UIColor.HL.PurpleStart,UIColor.HL.PurpleEnd])
})
}
但这会在现有背景下添加一个新的渐变背景。self.view.applyGradient()
是一种比 SO 上的其他示例更流行的应用渐变背景的方法,因此其他解决方案似乎并不适用。那么在使用时如何移除/替换现有的渐变self.view.applyGradient()
呢?
解决方案
推荐阅读
- javascript - 根据 DOM 值和状态比较切换类名
- shell - 连续读行,有修改和删除?
- r - 随机变量 X 和 Y 的模拟
- amazon-web-services - ansible aws 配置规则模块
- linux - 在一个命令中设置两个输入文件
- android - 使用上传密钥而不是 Google Play 应用签名密钥测试游戏服务
- docker - 访问从 Docker Compose 转换而来的 Kubernetes 服务
- .net - 映射 - ElasticSearch [7+]
- vim - 使用 6 个空格而不是 4 个空格在新行上自动缩进
- php - 在 Rhel7 Enterprise 中为 Apache 2.4 安装 mod_php71u