ios - Swift 4 - 后台功能不起作用
问题描述
我用 Swift 4 制作了这个简单的游戏,但它不起作用。
代码 :
class ViewController: UIViewController {
@IBOutlet weak var TheCharacter: UIImageView!
@IBOutlet weak var rocket1: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
self.rocket1.isHidden = true
if 1 % 1 == 0 {
if 0 == 0{
self.rocket1.isHidden = false
let xPosR = rocket1.frame.origin.x + 500
let yPosR = rocket1.frame.origin.y
let heightCharacterR = rocket1.frame.size.height
let widthCharacterR = rocket1.frame.size.width
UIView.animate(withDuration: 1.75, animations: {
self.rocket1.frame = CGRect(x: xPosR, y: yPosR
, width: widthCharacterR, height: heightCharacterR)
}) { (finished) in
}
self.rocket1.isHidden = true
self.rocket1.frame = CGRect(x: xPosR - 500, y: yPosR, width: widthCharacterR, height: heightCharacterR)
}
}
}
}
我知道它写得不好,但问题是其中一枚火箭必须在我的屏幕中移动(从一侧到另一侧),因为条件始终为真,因为 0==0 和 1 % 1 == 0。但事实并非如此移动。
为什么?
解决方案
您正在 viewDidLoad() 中为视图设置动画,也就是说,在它们在窗口中可见之前。将该代码移至 viewDidAppear()。然后你的视图是可见的并且可以被动画化。
并确保您的视图没有使用限制框架的自动布局。动画框架不是一个好主意OTOH。
推荐阅读
- ruby-on-rails - 通过控制台仅查看rails中与模型相关的一项数据
- angular - 发生未处理的异常:找不到模块“@angular-devkit/build-angular/package.json”需要堆栈:
- r - 用变量和年份分隔列名
- java - 由于错误的模式类型(JSON 而不是 AVRO),Pulsar 函数无法反序列化消息
- kdb - 将空日期 0Nd 添加到 kdb 中空单元格的日期列
- testing - 无法使用创建的用户帐户和密码连接到数据库
- amazon-web-services - 如何为 terraform destroy 提供变量?
- web-services - 是否可以使用 Polarion Webservices 访问 Polarion 的所有数据
- python - 对 google sheet 工作表中的工作表进行排序
- flutter - Flutter - 关于类、键以及如何使用它们的所有信息