저는 아직 새로운 것이므로 부모보기의 하단 하단에 컨테이너보기를 배치하는 것이 좋습니다 (포함되는 부분은 외부에 있습니다. 처음에는보기). 그런 다음 사용자가 버튼을 터치하면 컨테이너가 애니메이션되고 모든 것이 표시되도록 위로 이동합니다.Swift : 부모보기의 맨 아래에 컨테이너보기를 올바르게 배치하는 방법은 무엇입니까? (또는 컨테이너보기가 아닌 다른 옵션이 있습니까?)
애니메이션이 제대로 작동하지만 위치가 어렵습니다. 여기에 지금까지 무엇을했는지 있습니다 :
@IBOutlet var testView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
testView.frame.size = CGSize(width: view.bounds.width, height: 400)
testView.layer.position = CGPoint(x: view.frame.midX, y: view.frame.maxY + 90)
view.addSubview(testView)
}
그래서 나는 수퍼 및 (400)의 고정 된 크기의 폭에 컨테이너보기를 설정 한 그리고 나는 그렇게 화면 하단 중앙에 배치하려고 그 부분은 보이고 부분은 화면 밖에있다. 그래서 여기
@IBAction func showMoreButton(_ sender: UIButton) {
UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 0.5, initialSpringVelocity: 0, options: [], animations: {self.testView.transform = CGAffineTransform(translationX: 0, y: -190)
}, completion: nil)
난 그냥 용기 (190) 위로 이동 : 여기
애니메이션 부분입니다. 컨테이너 하단에는 표시되지 않는 닫기 버튼이 있습니다 (아직 수퍼 뷰 외부에 있음).나는 그 문제와 관련하여 view.frame.maxY + 90 (즉 90 픽셀이 표시됨)에서 뷰를 직접 배치하는 방법이라는 것이 확실합니다. 뷰 높이를 줄이면 컨테이너의 원래 위치가 점점 더 아래로 이동합니다. 애니메이션 후에 모든 것이 표시되지만 분명히 작습니다. UIKit의 원점은 0,0의 왼쪽 상단에 있기 때문에 수퍼 뷰의 맨 아래에 뷰를 배치하여 약 90 픽셀이 표시되도록하고 애니메이션이 완료되면 뷰가 모두 표시되도록하는 방법을 생각했습니다. 위로 이동하고 이제 superview에 표시됩니다.
어떻게하면됩니까?