現在、アプリの起動直後にボタンが回転するというアニメーションを
考えています。
少々説明が難しいのですが、質問させていただきます。
質問内容は下記の通りです。
■質問内容
selectorを使ってviewDidAppear内のメソッドを呼び出すには
どのようなコーディングをすべきでしょうか。
はじめは、下記の様なコーディングをしました。
class LoginViewController: UIViewController { @IBOutlet weak var buttonTest: UIButton! override func viewDidLoad() { super.viewDidLoad() Timer.scheduledTimer(timeInterval: 8.0, target: self, selector: #selector(self.rotate), userInfo: nil, repeats: true) } func rotate() { UIView.animate(withDuration: 6.0, delay: 0.0, options: [.curveEaseInOut], animations: { 回転の処理 } } }
ボタンは回転するのですが、
アプリが起動して数秒たってから回転のアニメーションが始まってしまいます。
アプリが起動してアニメーションが始まるまでの時間を短くさせたくて
下記の様なコーディングをしました。
class LoginViewController: UIViewController { @IBOutlet weak var buttonTest: UIButton! override func viewDidLoad() { super.viewDidLoad() Timer.scheduledTimer(timeInterval: 8.0, target: self, selector: #selector(self.rotate), userInfo: nil, repeats: true) } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated: Bool) func rotate() { UIView.animate(withDuration: 6.0, delay: 0.0, options: [.curveEaseInOut], animations: { 回転の処理 } } }
上記のようなコーディングをすると、#selectorのところで以下の様なエラーに
なりました。
そのため、#selectorのところを下記の様にコーディングをしてみました。
Timer.scheduledTimer(timeInterval: 8.0, target: self, selector: #selector(LoginViewController.viewAppear(_:)), userInfo: nil, repeats: true)
コーディングエラーはでないものの
実機テストを行うとアニメーションが始まらなくなりました。
selectorを使ってviewDidAppear内のrotate()を呼び出すには
どのようなコーディングをすべきでしょうか。
お手数をおかけいたしますが、ご教示いただけますでしょうか。
よろしくお願い致します。
■補足
swift:3
xcode:8.2.1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/19 00:22 編集
2017/05/19 01:02 編集
2017/05/19 02:16
2017/05/19 09:34 編集