前提・実現したいこと
Swift初心者です。
別個の画像がアサインされた複数のUIButtonが、
ランダムに配置されている状態を初期状態として、
①右方向へ同速度で移動させ
②画面から消えたらランダムに選択した画像をアサインし
③左側から再度登場し
④また右方向へ移動
という事を各UIButtonが独立に繰り返している、
という実装をしたいと考えています。
発生している問題・エラーメッセージ
②のランダムに選択した画像をアサインする際にsetImageを用いると、
②の条件を満たしたUIButtonの画像がランダム選択されたものになるまでは良いですが、
各UIButtonの位置が初期状態となってしまいます。
前述の通り各UIの動作が独立してほしいため、
一つのUIButtonが②の条件を満たしたからと言って、
他のUIButtonの位置を勝手に変更して欲しくありません。
この各UIButtonの位置が初期状態となってしまう現象を解消できる方法があれば
ご教授いただければと思います。
該当のソースコード
Swift
1class FruitContentsViewController: UIViewController { 2 @IBOutlet var moveFruitCollection: [UIButton]! 3 override func viewDidLoad() { 4 super.viewDidLoad() 5 let xbound = 100.0 6 let s = CGPoint(x: -xbound, y: 0) 7 let e = CGPoint(x: xbound, y: 0) 8 let i = CGPoint(x: 5.0, y: 0) 9 // animation 10 for moveFruit in self.moveFruitCollection { 11 Timer.scheduledTimer(withTimeInterval: 0.01, repeats: true) { (timer) in 12 moveFruit.center.x += i.x 13 if moveFruit.center.x >= (self.view.bounds.size.width+e.x) { 14 moveFruit.center.x = s.x 15 self.changeImage( moveFruit: moveFruit) 16 } 17 } 18 } 19 } 20 func changeImage( moveFruit: UIButton!){ 21 let image_list = ["f01”,”f02”,”f03”,”f04”,”f05”,”f06"] 22 let index = (Int)(arc4random_uniform(6)) 23 let fruit_uiimage = UIImage(named:image_list[index])! 24 moveFruit.setImage(fruit_uiimage, for: .normal) 25 } 26}
試したこと
補足情報(FW/ツールのバージョンなど)
Xcode10.1を用いています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/22 23:21
2019/03/23 01:18
2019/03/23 01:41