Я хочу, чтобы UIView отображался путем масштабирования слева направо, если я нажму кнопку. Если я снова нажму кнопку, вид должен масштабироваться справа налево.Как масштабировать UIView слева направо и назад?
Я нашел объяснение, как это сделать влево-вправо, но даже это решение работает только один раз. Если я скрою вид и снова воспроизведу анимацию, он снова масштабирует его из центра. Также масштабирование его справа налево не работает, так как оно исчезает безмерно без какой-либо анимации.
Вот мой код до сих пор:
if(!addQuestionaryView.isHidden)
{
//Reset input if view is hidden
addQuestionaryInput.text = ""
self.addQuestionaryView.isHidden = false
let frame = addQuestionaryView.frame;
let rect = CGRect(x: frame.origin.x, y: frame.origin.y, width: frame.width, height: frame.height)
let leftCenter = CGPoint(x: rect.minX, y: rect.minY)
addQuestionaryView.layer.anchorPoint = CGPoint(x:1,y: 0.5)
addQuestionaryView.layer.position = leftCenter
UIView.animate(withDuration: 0.6,
animations: {
self.addQuestionaryView.transform = CGAffineTransform(scaleX: 0, y: 1)
},
completion: { _ in
self.addQuestionaryView.isHidden = true
})
}
else
{
self.addQuestionaryView.isHidden = false
let frame = addQuestionaryView.frame;
let rect = CGRect(x: frame.origin.x, y: frame.origin.y, width: frame.width, height: frame.height)
let leftCenter = CGPoint(x: rect.minX, y: rect.midY)
addQuestionaryView.layer.anchorPoint = CGPoint(x:0,y: 0.5);
addQuestionaryView.layer.position = leftCenter
addQuestionaryView.transform = CGAffineTransform(scaleX: 0, y: 1)
UIView.animate(withDuration: 0.6,
animations: {
self.addQuestionaryView.transform = CGAffineTransform(scaleX: 1, y: 1)
},
completion: nil)
}
Как сказал появляясь часть работает один раз, а затем снова начинается от центра. Исчезающая часть не работает вообще.
Вы хотите его на самом деле масштаб (squish view) - или вы просто хотите, чтобы он появился слева, а затем исчез вправо? –
Не планировалось масштабировать его, чтобы он немного напоминал анимацию Android. Не просто перемещать его слева направо и назад. Он должен выглядеть так, как будто он не открывается. –