ios - 使对象/图像在 Xcode 中随机出现和消失
问题描述
我必须让一个目标随机出现和消失,例如在 20 秒的空间内,但想先修复闪光灯。该对象以编程方式插入,只是一个带有碰撞的 png。当球击中它时,它会消失并添加分数。这部分已经有效。当前代码如下
生成敌人(是其他 4 个敌人的功能的一部分)
let enemy1 = UIImageView(image: nil)
enemy1.image = UIImage(named: "enemy2.png")
enemy1.frame = CGRect(x: w*0.85, y: h*0.035, width: w*0.12, height: h*0.22)
self.view.addSubview(enemy1)
击中时得分加 1:
collisionBehaviour = UICollisionBehavior(items:[enemy1])
dynamicAnimator.addBehavior(collisionBehaviour)
collisionBehaviour.action = {
for boulderView in self.bouldersArray{
if boulderView.frame.intersects(enemy1.frame){
//enemy1.removeFromSuperview()
if enemy1.superview != nil{
self.scoreCount += 1
self.scoreCountLabel.text = "Score: \(self.scoreCount)"
enemy1.removeFromSuperview()
}
}
}
}
它非常硬编码,请不要修复它。尝试了一个if
语句让它在子视图中出现和消失,但它根本不起作用,只是疯狂地失败了。
解决方案
要使其消失,请将 alpha 属性设置为 0
enemy1.alpha = 0
要使其显示,请将 alpha 属性设置为 1
enemy1.alpha = 1
如果你想动画消失使用 UIView Animate 方法
UIView.animate(withDuration: 0.3, delay: 0.5, options: .curveEaseOut, animations: {
self.enemy1.alpha = 0
}, completion: nil)
推荐阅读
- amazon-redshift - 如果数据库中的任何用户都可以查看模式层次结构,那么 Redshift 中的 GRANT USAGE ON SCHEMA 有什么意义
- html - 如何修复 Datatables css 不适用于 Datatables?
- python - Python TkInter:网格属性的最右列和最底行值?
- stripe-payments - PHP 脚本上的 Stripe Payment 集成问题
- jquery - 使用 jquery 使除一个 div 之外的整个主体不可点击
- android - SharedPrefrences 的实际作用
- python - 仅当所有 ManyToMany 字段都匹配 dict 时,Django 才查询对象
- java - 如何在 Edittext afterTextChanged 中使用两位数?
- java - 如何在 void 方法 SUT Mockito 中获取对象值
- android - 如何刷新/重绘在 Android Sceneform 中呈现的 TextView?