0
UIViewの高さを高さ1pxから高さ41pxにアニメーションしようとしています。これは現在の作品ですが、下から上にアニメートするビューの代わりに上から下に移動します。ここでUIViewの高さを上から下へアニメーションしようとしました
は、私はそれがアップアニメーション化するために使用していたコードであると
func animateBackgroundHeightUp() {
print("animate")
UIView.animate(withDuration: 0.5, animations: {
self.personBg.frame.size.height = 41
})
}
func animateBackgroundHeightDown() {
print("animate")
UIView.animate(withDuration: 0.5, animations: {
self.personBg.frame.size.height = 1
})
}
ダウン私は、原点yを設定する方法を理解する必要があると思いますが、私は迅速に見つけることができないよう3例。
EDIT
func animateBackgroundHeightUp() { print("animate") UIView.animate(withDuration: 0.5, animations: { self.personBg.frame.size.height = 41 self.personBg.frame.origin.y = -41 }) }
func animateBackgroundHeightDown() { print("animate") UIView.animate(withDuration: 0.5, animations: { self.personBg.frame.size.height = 1 self.personBg.frame.origin.y = 41 }) }
何私のために働いてしまったことは、この設定です。しかし、なぜ起源が20になる必要があるのか、私は混乱していますか?
func animateBackgroundHeightUp() {
print("animate")
UIView.animate(withDuration: 0.25, animations: {
self.personBg.frame.size.height = 41
self.personBg.frame.origin.y = 20
})
}
func animateBackgroundHeightDown() {
print("animate")
UIView.animate(withDuration: 0.25, animations: {
self.personBg.frame.size.height = 1
self.personBg.frame.origin.y = 59.9
})
}
59.9の数値は、ロード時に起点yの値を出力することによって計算されました。
小数点以下の位置は避けてください。レンダリングエンジンが補間するため、非整数の位置にあるビューがぼやけて見えます。 (Retinaデバイスでは1ポイントあたり2ピクセルなので、Retinaデバイスでは.5で終わるx&yポジションで離れることができます)。 –