swift - 如何在 didload 上修复圆圈上的 UIimageview
问题描述
我想显示这个进度条,但是当在位于顶部的simulatore first time night icon 上加载时,在我更改选项卡后它就可以了并修复了圆形路径,出了什么问题?
override func viewWillAppear(_ animated: Bool) {
SetIconOnProgress()
super.viewWillAppear(true)
}
func SetIconOnProgress() {
let timeDay = currentSecondPassInDay > (secondsInDay / 2) ? 0 : timeLeft
let timeNight = currentSecondPassInDay < (secondsInDay / 2) ? 0 : timeLeft
let animationDay = CAKeyframeAnimation(keyPath: #keyPath(CALayer.position))
animationDay.duration = CFTimeInterval(timeDay)
let animationNight = CAKeyframeAnimation(keyPath: #keyPath(CALayer.position))
animationNight.duration = CFTimeInterval(timeNight)
animationNight.path = UIBezierPath(arcCenter: CGPoint(x: view.frame.midX , y: view.frame.midY - 200), radius:
100, startAngle: CGFloat( (M_PI*Double(timeNight)) / Double(secondsInDay / 2)) , endAngle: CGFloat(M_PI) , clockwise: true).cgPath
animationDay.path = UIBezierPath(arcCenter: CGPoint(x: view.frame.midX , y: view.frame.midY - 200), radius:
100, startAngle: CGFloat( M_PI + (M_PI*Double(timeDay)) / Double(secondsInDay / 2)) , endAngle: CGFloat(M_PI*0) , clockwise: true).cgPath
if currentSecondPassInDay > (secondsInDay / 2 ){
animationDay.speed = 0.0
animationNight.speed = 1.0
}
if currentSecondPassInDay < (secondsInDay / 2) {
animationDay.speed = 1.0
animationNight.speed = 0.0
}
let dayIcon = UIImageView(image: UIImage(named: "day"))
dayIcon.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
view.addSubview(dayIcon)
dayIcon.layer.add(animationDay, forKey: nil)
let nightIcon = UIImageView(image: UIImage(named: "night"))
nightIcon.frame = CGRect(x: 0, y: 0, width: 50, height: 50)
view.addSubview(nightIcon)
nightIcon.layer.add(animationNight, forKey: nil)
}
它应该在加载视图控制器时固定在圆形路径上,并且当我更改选项卡时不要更改它的路径。
解决方案
推荐阅读
- directx - HLSL 5.0 float1x3 与 float3x1 常量缓冲区打包规则
- machine-learning - Pytorch autograd:计算输入的批量梯度
- r - 如何在密度图上居中文本标签
- apache - .htaccess 重定向到子域并强制执行 HTTPS
- c# - 是否可以仅将 .NET Standard + .NET Core 类/库构建到 .NET Standard?
- regex - 如何在正则表达式中获取年龄
- java - 如何从外部服务收集 Java Stream 内的数据?
- react-native - 如何在 react-native 中获取组件(元素)的 id
- django - How do I implement a machine learning model trained by python to a webpage?
- java - 在java中的二叉树递归函数中存储一个计数器