質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

Q&A

解決済

1回答

1686閲覧

swift アニメーション後文字が一瞬大きくなるバグ

Dave

総合スコア22

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

0グッド

0クリップ

投稿2020/05/27 23:47

MacOS Catalina 10.15.4
Xcode 11.5 beta
Swift version 4

ルーレットを回して止めると、アニメーションで文字が1秒間拡大され、その後元の大きさに戻るように設定しました。
しかし、そのアニメーション終了間際に、なぜか一瞬だけ文字がまた大きくなってしまいます。
しかもなぜか実機で試すとその現象が起こり、シミュレーターでは起きません。
コードは以下のように短いものですが、何か間違えておりますでしょうか。
大変お手数ですが、ご教示頂けると幸いです。
宜しくお願い致します。

swift

1UIView.animate(withDuration: 1.0, delay: 0.0, options: .autoreverse, animations: { 2 self.player1.transform = CGAffineTransform(scaleX: 2, y: 2) 3 }){_ in 4 self.player1.transform = CGAffineTransform(scaleX: 1, y: 1) 5 }

(動画を貼れればよかったですが、、、)

1.右の黒矢印を押すと
右の黒矢印を押すと

2.1秒かけて文字が大きくなり
1秒間かけて文字が大きくなり

3.また元の大きさに戻ります
また元の大きさに戻ります

4.しかしまた一瞬だけ大きくなります
しかしまた一瞬だけ大きくなります

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Animationには詳しくないので、なぜそれが起こるのかはちょっとなんとも言えないですが、下記のコードで期待通りに動きました。autoreverseで戻すのではなく、animationとしては拡大を指定して、completionでもとのサイズに戻すanimationを別途セットしています。

余談ですが、ちょっと作るのが面倒ですがアニメーションgifならteratailに投稿できます。

swift

1UIView.animate(withDuration: 1.0, animations: { 2 self.player1.transform = CGAffineTransform(scaleX: 2.0, y: 2.0) 3}, completion: { _ in 4 UIView.animate(withDuration: 1.0) { 5 self.player1.transform = .identity 6 } 7})

Screen Recording

投稿2020/05/28 02:24

thyda.eiqau

総合スコア2982

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Dave

2020/05/28 02:54

ご回答ありがとうございます! 無事に実機でも期待通りの動きをしてくれました。 またgifも次回から必要に応じて取り入れてみたいと思います。 ありがとうございました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問