我已经使用Xcode / Swift几个星期了,我正在开发我的第一个小iOS游戏。没有什么可以尝试学习该程序和享受一些乐趣。这导致我的问题......
...我本质上希望我的应用程序中的背景图像随机更改(从数组中的一组值),但定时。例如,“背景图像每2秒更改一次。”
到目前为止,我已经看到了一些关于NSTimer的内容,但我不太清楚如何用我已经拥有的东西来实现它。
@IBOutlet weak var backview: UIImageView!
let BackNames = ["Back 1", "Back 2", "Back 3", "Back 4", "Back 5", "Back 6", "Back 7"]
let BackValue = Int(arc4random_uniform(7))
backview.image = UIImage (named: BackNames [BackValue])
所以是的,就像我说的那样,我知道如何让它为背景选择一个随机值,但只有当我点击我的按钮时它才会发生。想知道如何将时间特征与我的arc4random相结合。
谢谢!
答案 0 :(得分:2)
尝试使用此图像动画:
var imgListArray :NSMutableArray = ["Back 1", "Back 2", "Back 3", "Back 4", "Back 5", "Back 6", "Back 7"]
for countValue in 1...7
{
var strImageName : String = "Back \(countValue).png"
var image = UIImage(named:strImageName)
imgListArray .addObject(image)
}
self.imageView.animationImages = imgListArray;
self.imageView.animationDuration = 1.0 // change as per your requirement
self.imageView.startAnimating()
答案 1 :(得分:1)
写入更改颜色功能,并在延迟后使用功能执行选择器。
func ChangeColor() {
BackValue = Int(arc4random_uniform(7))
backview.image = UIImage (named: BackNames [BackValue])
self.perform(#selector(ChangeColor), with: nil, afterDelay: 2.0)
}
取消选择器使用
self.classForCoder.cancelPreviousPerformRequests(withTarget: self)
答案 2 :(得分:0)
在objective-c;
[NSTimer scheduledTimerWithTimeInterval:2.0
target:self
selector:@selector(timerCalled:)
userInfo:nil
repeats:YES];
-(void)timerCalled
{
[UIView transitionWithView:textFieldimageView
duration:0.2f
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^{
imageView.image = newImage;
} completion:nil];
}