メインビューに2つのボタンと1つのUIImageViewがあります。一方のボタンはUIImageViewを30度回転させ、もう一方のボタンはUIImageViewのフレームをそれ自身に更新します。CGAffineTransformで回転させた後、UIImageViewフレームを更新するときに奇妙なスキッシュが発生する
フレーム自体を視覚的に影響を与えるように設定することは期待できませんが、画像がデフォルトの向き以外の回転になっている場合は、代わりに画像が詰まるように見えます。私はUIImageViewのフレームを回転した後にxとyの座標を変更するために更新したいので、これを見つけました。
結果、回転ボタンは更新フレームボタンを押さない限り正常に動作しているようです。しかし、ビューが回転している間に2番目のボタンを押すと、画像が理解できない状態になるか、元に戻す方法がわかります。 https://streamable.com/vo3cd
このような理由は何:回転がデフォルトの向きではありませんしながら、唯一の「つぶし」第二ボタンの https://streamable.com/ba7zd
ビデオ:画像を「つぶし」第二ボタンの
ビデオ起こっている? This questionとthis questionはどちらも同様のシナリオをキャプチャしているようですが、いずれのソリューションを適用するかはわかりません。
@IBOutlet weak var dog: UIImageView!
@IBAction func breakRotate(_ sender: UIButton) {
self.dog.frame = self.dog.frame // squishes if rotated
}
@IBAction func rotateDog(_ sender: UIButton) {
UIView.animate(withDuration: 1.5, delay: 0, options: [.allowUserInteraction], animations: {
self.dog!.transform = self.dog!.transform.rotated(by: CGFloat(0.523599)) // 30 degrees in radians
})
}
画像:のViewControllerで