前提・実現したいこと
swift言語でiOSアプリの実装をしております。
画像からGIFアニメーションへ切り替える処理をしている箇所があるのですが、
iPhone11のみ切り換えがうまくいかないです。
(切替えというよりは、前の画像が残ったまま新しいアニメーションが動いてしまいます。)
ただ、iPhone8、iPhoneX、iPhoneXRではうまく切り替えられてることは確認できてます。
いくつか試してみたのですが、うまくいかないため質問させていただきました。
お力を貸してください。
該当のソースコード
swift
1import UIKit 2import SwiftyGif 3 4class ViewController: UIViewController { 5 6 var btnNext = UIButton() 7 var imgView = UIImageView() 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 12 // 画面サイズを取得する 13 let iWidthScreen = self.view.frame.size.width 14 let iHeightScreen = self.view.frame.size.height 15 16 // 画像 17 var img:UIImage 18 img = UIImage(named: "image1")! 19 imgView = UIImageView(image: img) 20 imgView.frame = CGRect(x: iWidthScreen * 0.38, y: iHeightScreen * 0.612, width: iWidthScreen * 0.24, height: iHeightScreen * 0.078) 21 self.view.addSubview(imgView) 22 23 // 切り替えボタン 24 btnNext.frame = CGRect(x: iWidthScreen * 0.1, y: iHeightScreen * 0.85, width: iWidthScreen * 0.8, height: 50) 25 btnNext.setTitle("画像切替", for: .normal) 26 btnNext.setTitleColor(UIColor.blue, for: .normal) 27 btnNext.layer.cornerRadius = 12 28 btnNext.addTarget(self, action: #selector(btnNext_touched), for: .touchUpInside) 29 self.view.addSubview(btnNext) 30 } 31 32 override func viewDidAppear(_ animated: Bool) { 33 } 34 35 // ボタン押下 36 @objc func btnNext_touched() { 37 38 // 前の画像削除 39 imgView.image = nil 40 41 // GIFアニメーション表示 42 var imgViewAnimate:UIImageView! 43 imgViewAnimate = UIImageView(gifImage: UIImage(gifName: "auto_setting"), manager: SwiftyGifManager(memoryLimit:20)) 44 imgViewAnimate.frame = CGRect(x: self.view.frame.size.width * 0.38, y: self.view.frame.size.height * 0.5, width: self.view.frame.size.width * 0.24, height: self.view.frame.size.height * 0.2) 45 self.view.addSubview(imgViewAnimate) 46 } 47}
試したこと
↓↓下記の方法も試してみましたがどれもNGでした
imgView.removeFromSuperview()
imgView.isHidden = true
imgView.image?.clear()
補足情報(FW/ツールのバージョンなど)
MacOS Catalina
Swift 4.2
Xcode 10.0
あなたの回答
tips
プレビュー