このリンクの質問の内容を発展させ、図の様に、メインのviewController上に、ボタンとcontainerを配置し、ボタンが押される度に、containerをflipすると同時に、メインのviewController側で整数をカウントアップし、その値をcontainer上に配置したlabelに表示させるにはどの様にすれば良いでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
Segueの遷移アニメーションでやろうとしましたが、ややこしくなって挫折しました...
UIViewのアニメーションにてやってみましたが、こちらで代替できますでしょうか?
###Main.storyboard
コンテナビューをやめ、通常のUIViewでフリップするビューを用意し、内部にラベルを設置
ViewController.swift
swift
1import UIKit 2 3class ViewController: UIViewController { 4 5 var count = 0 // 現在のカウント 6 7 @IBOutlet weak var countView: UIView! // 緑のビュー 8 @IBOutlet weak var countLabel: UILabel! // 緑のビューの中のラベル 9 10 // Count up Button押下時のアクション 11 @IBAction func countUp(_ sender: UIButton) { 12 sender.isEnabled = false // ボタンを使用不能にし、連続クリックを防止 13 UIView.transition( 14 with: self.countView, // 緑のビューをアニメーション 15 duration: 1.0, // 1.0秒でアニメーション 16 options: UIViewAnimationOptions.transitionFlipFromLeft, // 左辺が持ち上がり垂直回転軸でフリップ 17 animations: {() -> Void in self.countUp()}, // 裏返ったらカウントを増加 18 completion: {(_) -> Void in sender.isEnabled = true}) // アニメーション終了後にボタンを使用可能にする 19 } 20 21 override func viewDidLoad() { 22 super.viewDidLoad() 23 self.countUp() // ロード時にカウントアップしラベルを初期化 24 } 25 26 override func didReceiveMemoryWarning() { 27 super.didReceiveMemoryWarning() 28 } 29 30 // カウントを増加しラベルの文字を書き換え 31 private func countUp() { 32 self.count += 1 33 self.countLabel.text = String("Count=\(self.count)") 34 } 35}
実行時の様子
1秒でアニメーション | 10秒でアニメーション |
---|---|
投稿2017/06/12 14:34
総合スコア10807
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/13 01:35
2017/06/13 02:41