2017-04-22 9 views
0

ボタンをタップするたびに画像を変更したい。
画像の名前は次のとおりです。
1. PNG
2. PNG
3. PNG
4. PNG
ボタンの名前はaddButtonです。
現在、addButtonをタップするたびに、画像は次のように切り替わります。
1. png→2.png→3.png→4.png→1.png→2.png→3.png→ループ....
コードは以下の通りです。
ボタンをタップするたびに画像を変更したい

class ViewController: UIViewController { 
     var imageNum: Int = 0 
     var imageArray:[UIImage] = [] 
     var stampImage = UIImage(named: "1")! 
     var stampView:UIImageView! 
     @IBOutlet weak var addButton: UIButton! 
     //@IBOutlet weak var reduceButton: UIButton! 

     override func viewDidLoad() { 
       super.viewDidLoad() 
       for i in 1...4 { 
        imageArray.append(UIImage(named: "\(i).png")!) 
       } 
       stampView = UIImageView(image: imageArray[0]) 
       stampView.center = self.view.center 
     } 
     @IBAction func addButtonTapped(_ sender: UIButton) { 

       imageNum = (imageNum + 1) % imageArray.count 
       stampView.image = imageArray[imageNum] 
       stampImage = UIImage(named: "\(imageNum + 1)")! 
     } 
    } 

次に、あなたがreduceButtonをタップすると、あなたが戻って一つの画像を表示したいです。
たとえば、現在表示されている画像が2.pngの場合は、
のように、タップごとに次のようにreduceButtonを表示したいとします。

2. PNG→1→PNG 4. PNG→3→PNG→1→PNG 4. PNG→3のpng→ループ2 pngなど

私はコーディングのどのような操作を行う必要があります
そのような場合?

答えて

0

あなたは1を引い代わりのようなimageNumに追加すると、同じ操作を行うことができます。

imageNum = (imageNum - 1) % imageArray.count 

をしかしimageNumがマイナス得ることができますので、ので、括弧内の式にimageArray.countを追加する方が安全だろうまた維持しながら、我々は負の変数上で実行する剰余演算を妨げているimageArray.countを追加することにより

imageNum = (imageArray.count + imageNum - 1) % imageArray.count 

:最後の行は次のようになります。モジュロ演算のrhs上の任意の乗数を加算しても式の結果に影響しないという事実のために、すべての数の間の正確なサイクリング

+0

エラーが表示されてから数日後に心配しました。 問題なく動作し始めました。 ご意見ありがとうございます。 – ginger

関連する問題