첫 번째 맞춤 맞춤 애니메이션을 만들고 있습니다. 내가 원하는 것은 행을 선택했을 때 옆에서 밀어 넣는 대신 선택한 행에서 펼쳐지는 목록 뷰를 갖는 것입니다. 뭔가 같은 : 맞춤형 긴급 애니메이션 재생 문제 표시
그래서 사용자가 새로운 컨트롤러가 녹색 행 크기에서 시작 화면을 채우기 위해 확장됩니다 녹색 행을 선택합니다. 이 부분은 지금까지 잘 작동했습니다.내가 겪고있는 문제는 반대쪽을 시도하는 긴장 풀리는 부분과 전체 화면을 원래 행으로 축소 한 다음 닫을 때의 문제입니다. 발생하는 상황은 잘게 축소되지만 노출 된 영역은 검은 색으로 유지되고 애니메이션이 완료되면 갑자기 깜박입니다. 무엇 수배은이 같은 것입니다 :
그러나 일어나고있는 것이 더 같이있다 :
내가 언 와인드의 perform
을 위해 사용하고 코드는 외모와 같은 :
class FromScheduleFocusSegue: UIStoryboardSegue {
override func perform() {
let fromView = self.source.view!
let toView = self.destination.view!
let window = UIApplication.shared.keyWindow!
let schedulesList = self.destination as! SchedulesListController
let cell = schedulesList.tableView.cellForRow(at: schedulesList.tableView.indexPathForSelectedRow!)!
var stripe = cell.bounds
stripe.size.height = 60
let targetFrame = cell.convert(stripe, to: window).insetBy(dx: 0, dy: 0)
schedulesList.tableView.selectRow(at: nil, animated: false, scrollPosition: .none)
UIView.animateWithDuration(4000.milliseconds, delay: 0.seconds, options: .curveEaseInOut, animations: {
fromView.frame = targetFrame
}) { (finished) in
self.source.dismiss(animated: false, completion: nil)
}
}
}
그래서 기본적으로, 내가보기에는 애니메이션으로 표시 되려고합니다. ation이 일어나고 있습니까? 완성도를 위해서
는, 여기에 앞으로 SEGUE 코드입니다 :
class ToScheduleFocusSegue: UIStoryboardSegue {
override func perform() {
let fromView = self.source.view!
let toView = self.destination.view!
let window = UIApplication.shared.keyWindow!
let box = UIScreen.main.bounds
let schedulesList = self.source as! SchedulesListController
let cell = schedulesList.tableView.cellForRow(at: schedulesList.tableView.indexPathForSelectedRow!)!
toView.frame = cell.convert(cell.bounds, to: window).insetBy(dx: 0, dy: 0)
window.insertSubview(toView, aboveSubview: fromView)
UIView.animateWithDuration(4000.milliseconds, delay: 0.seconds, options: .curveEaseInOut, animations: {
toView.frame = box
}) { (finished) in
self.source.present(self.destination, animated: false, completion: nil)
}
}
}
당신은 사용자 정의 전환을 대신 사용해야합니다./UIPresentationController 및 패밀리. – Andy
내가 원하는 것을 시각적으로 만들어주기 위해 올바른 방향으로 나아갈 수있는 예를 보여줄 수 있다면, 현상금은 너의 것이다. –
나는 UICollectionView를 더 자세히 살펴볼 것이다. 예를 들어, "일반 화면 전환을위한 콜렉션 뷰 레이아웃 애니메이션"섹션을 참조하십시오. https://www.objc.io/issues/12-animations/collectionview-animations/ –