ํ์ ์ปจํธ๋กค๋ฌ ์์ ์๋ฅด๊ธฐ ์ปจํธ๋กค๋ฌ๋ฅผ ํ์ํ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์๋ฅด๊ธฐ ์ปจํธ๋กค๋ฌ๋ฅผ ๋ซ์ ๋ ์ ํ์ด ๋๋๋ฉด ํ์ ์ปจํธ๋กค๋ฌ ๋ณด๊ธฐ๊ฐ ์ ๊ฑฐ๋๊ณ ํ์๋์ง ์์ต๋๋ค...(iPhone ๋ฐ iPad ๋ฐ iOS 13์์๋ง ๋ฐ์).
ํ์์ด ์ฌ์ ํ ์กด์ฌํ๊ณ UI๊ฐ "๊ณ ์ฐฉ"๋์๋ค๋ ๊ฒ์ ๋งํ ๊ฒ๋ ์์ต๋๋ค.
@uchiaTziki ์. ๋น์ ์ ๋์๊ฒ ๋ณด์ฌ์ผ ํ ์๋ ์์ต๋๋ค, ์ฃ์กํฉ๋๋ค! ์คํฌ๋ฆฐ์ท์ ์ฒจ๋ถํ ์ ์์ต๋๊น?
์ฒจ๋ถ๋ ์คํฌ๋ฆฐ์ท...
๊ทธ๊ฒ์ด ์ผ์ด ๋ ๋ช
ํํด์ง๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
ํ , ๊ทธ๋์ ๋ค๋ฅธ ๋ทฐ ์ปจํธ๋กค๋ฌ ๋ด๋ถ์์ ํ๋ ์ ํ ์ด์ ์ ํ๊ณ ์๋ ๊ฑด๊ฐ์?
์ด ํด์ ์ฝ๋๊ฐ ์๋ชป๋ ๋ทฐ ์ปจํธ๋กค๋ฌ๋ฅผ ํด์ ํ๋ ๊ฒ์ผ๋ก ๋๋๋์ง ๊ถ๊ธํฉ๋๋ค.
๊ฑฐ๊ธฐ์ ์๋ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ฝ๋๋ฅผ ์์ ํ๋ ์กฐํฉ์ ์ฐพ์ ์ ์๋์ง ํ์ธํด ์ฃผ์๊ฒ ์ต๋๊น?
์ ๊ฐ ์ง์ ํ ์คํธํด๋ณด์ง ์๊ณ ์๋ ์ ๊ฐ ํ ์ ์๋๊ฒ ์์ต๋๋ค. ์ฃ์กํฉ๋๋ค!
๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ์๋ํ์ง๋ง ๋ค์ ์๋ ํ ๊ฒ์
๋๋ค..
๋ค์ชฝ์ ์๋ ์ปจํธ๋กค๋ฌ๊ฐ ํด์ ๋์ง ์์ต๋๋ค. ๋ณด๊ธฐ๊ฐ ์ ๊ฑฐ๋๊ณ ์์ต๋๋ค(์ด์ํฉ๋๋ค).
CropViewController๋ฅผ ์ ์ํ๊ธฐ ์ ์ ์ด ์ฝ๋๋ฅผ ์๋ํ์ จ์ต๋๊น?
if #available(iOS 13.0, *) {
cropViewController.modalPresentationStyle = .fullScreen
}
์ค๋ ์์นจ์ ์๋ํ์ต๋๋ค. ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ์ง๋ง ์ ๋๋ฉ์ด์
์ ๊ธฐ๋ณธ ๋ชจ๋ฌ ์ ๋๋ฉ์ด์
์
๋๋ค(์๋์์ ์๋ก).
๋ณด๊ธฐ/ํ๋ ์์ ํน์ ์ ๋๋ฉ์ด์
์ด ์ด ์๋ฃจ์
์์ ์๋ํ์ง ์์ต๋๋ค.
@uchiaTziki ์์ ์ฌํญ์ ์ฐพ์์ต๋๊น?
์ํ ์ฑ์์ ์ฌํํ ์ ์์ต๋๊น? ๊ทธ๋ ๋ค๋ฉด ์ ์ฌ์ ์ผ๋ก ๋ณผ ์ ์์ต๋๋ค.
iOS 13์์ ๋ชจ๋ฌ ํ๋ ์ ํ ์ด์ ์ด ์๋ํ๋ ๋ฐฉ์์ด ์ด์ ๋ฒ์ ์ iOS์์ ๋ณ๊ฒฝ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ ์์ง ์ฝ๋๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด ๋ฌด์์ ํด์ผ ํ๋์ง ์ ํํ ์์๋ผ ์ข์ ๊ธฐํ๊ฐ ์์์ต๋๋ค.
๋ด๊ฐ ๋ณผ ์์๋ ํ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ์ฐ ์ ๋๋ก ์๋ํ์ง ์์ต๋๋ค.
ํด๊ฐ์ค์ด๋ผ ์ฃ์กํฉ๋๋ค.
CropViewController๋ฅผ ์ ์ํ๊ธฐ ์ ์ ์ด ์ฝ๋๋ฅผ ์๋ํ์ จ์ต๋๊น?
if #available(iOS 13.0, *) { cropViewController.modalPresentationStyle = .fullScreen }
์ต์ Xcode ๋ฒ ํ์์ ๊ทธ( @TimOliver )๋ฅผ ์ฌ์ฉํ์ฌ ํธ๋ฆญ์ ์ํํ์ต๋๋ค. ๊ทธ๋์ ์ง๊ธ ์ ํ ์ ๋๋ฉ์ด์ ์ด ํจ๊ณผ๊ฐ ์์ต๋๋ค.
์ด๊ฒ์ ์ ์๊ฒ๋ ํจ๊ณผ์ ์ด์์ต๋๋ค.
func cropViewController(_ cropViewController: CropViewController, didFinishCancelled cancelled: Bool) {
//This code fails on iOS13.
//cropViewController.dismiss(animated: true)
let viewController = cropViewController.children.first!
viewController.modalTransitionStyle = .coverVertical
viewController.presentingViewController?.dismiss(animated: true, completion: nil)
}
์ด ๋ฐฉ๋ฒ์ iOS 13์์ ์ ์๋ํฉ๋๋ค.
์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋ ๋์ ๋ฐฉ๋ฒ์ ์ฐพ์ผ์๊ธฐ ๋ฐ๋๋๋ค.
์๋ ํ์ธ์, iOS 13.1์์ ๋ฒ๊ทธ๋ฅผ ๋ง๋ฌ์ต๋๋ค.
๋ด๊ฐ ์ฌ์ฉํ๋ค๋ฉด
dismiss(animated: true, completion: nil)
iOS 13.1์์
๋ชจ๋ ViewController๊ฐ ์ฌ๋ผ์ง๋๋ค.
์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋ ์ด์ ์ฌ์ฉ์ ์ง์ ์ ํ์ ์ฌ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก cropViewController.modalTransitionStyle = .coverVertical
๋ฅผ ์ค์ ํด์ผ ํ์ต๋๋ค...
์ฌ๊ธฐ์์ @oblq ์ ๋์ผํฉ๋๋ค.
CropViewController๋ฅผ ์ ์ํ๊ธฐ ์ ์ ์ด ์ฝ๋๋ฅผ ์๋ํ์ จ์ต๋๊น?
if #available(iOS 13.0, *) { cropViewController.modalPresentationStyle = .fullScreen }
๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
#์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ(iOS 13.0, *) {
CropViewController.modalPresentationStyle = .fullScreen
}
๊ฐ์ฌ ํด์. ์ด๊ฒ์ iOS 13์์ ๋ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
์ด๋ฏธ์ง ์๋ฅด๊ธฐ ํ ์๋ฅด๊ธฐ ์ปจํธ๋กค๋ฌ ํด์ , ์ ํ์ด ๋๋ ๋ ํ์ ์ปจํธ๋กค๋ฌ ๋ณด๊ธฐ๊ฐ ์ ๊ฑฐ๋๊ณ ํ์๋์ง ์์ต๋๋ค.
๋์์ฃผ์ธ์
์ด๋ฏธ์ง ์๋ฅด๊ธฐ ํ ์๋ฅด๊ธฐ ์ปจํธ๋กค๋ฌ ํด์ , ์ ํ์ด ๋๋ ๋ ํ์ ์ปจํธ๋กค๋ฌ ๋ณด๊ธฐ๊ฐ ์ ๊ฑฐ๋๊ณ ํ์๋์ง ์์ต๋๋ค.
๋์์ฃผ์ธ์
์๋
ํ์ธ์! ๊ทธ๋ฅ ์ค์ cropViewController.dismiss(animated: **false**, completion: nil)
๋์ cropViewController.dismiss(animated: **true**, completion: nil)
์ ๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๊ณ ๋
ธ๋ ฅํ์ต๋๋ค. @ibdman1991์ด ๋งํ๋ฏ์ด ์ ๋๋ฉ์ด์
์ ๋นํ์ฑํํ๋ฉด ์๋ํ์ง๋ง ๋ณด๊ธฐ์ ์ข์ง ์์ต๋๋ค. transitioningDelegate
์ ๊ฑฐํ๋ ๊ฒ์ด ๋ ์ข์ ํด๊ฒฐ์ฑ
์ด ๋ ์ ์๋ค๊ณ ์๊ฐํ์ง๋ง ์ด๊ฒ์ด ์ผ๋ง๋ ์ํฅ๋ ฅ์ด ์์์ง๋ ํ์คํ์ง ์์ต๋๋ค.
let cropViewController = CropViewController(image: image)
cropViewController.modalTransitionStyle = .crossDissolve
cropViewController.transitioningDelegate = nil
#์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ(iOS 13.0, *) {
CropViewController.modalPresentationStyle = .fullScreen
}
์ด ๋ฌธ์ ๋ iOS 13 ์ด์์์ ํด๊ฒฐ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
#์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ(iOS 13.0, *) {
CropViewController.modalPresentationStyle = .fullScreen
// CropViewController.modalTransitionStyle = .crossDissolve
CropViewController.transitioningDelegate = ์์
}
๋๋ฅผ ์ํด ์ผ
์ด. ๊ด์ฐฎ์. ํ๋ฆฌ์ ํ ์ด์ ์คํ์ผ์ ์ ์ฒด ํ๋ฉด์ผ๋ก ๋ช ์์ ์ผ๋ก ์ค์ ํ๋ฉด ๋๋ถ๋ถ์ ์ฌ๋๋ค์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ ๊ฐ์๊ธฐ ๋๋ฌธ์ ์ด ์์ ์ ์ข ๋ฃํฉ๋๋ค. :)
๋ช ์์ ์ผ๋ก ๋ค๋ฅธ ๋ชจ๋ฌ ํ๋ ์ ํ ์ด์ ์คํ์ผ์ด ํ์ํ ํน์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์๋ ๊ฒฝ์ฐ ์ ๋ฌธ์ ๋ฅผ ์ด๊ณ ์ํํ๋ ค๋ ์์ ์ ๋งค์ฐ ์ฃผ์ ๊น๊ฒ ์ค๋ช ํ์ธ์. iOS 13์ ๋ฒ๊ทธ์ธ ๊ฒฝ์ฐ ์ฌ๊ธฐ์์ ํ ์ ์๋ ์ผ์ด ๋ง์ง ์์ ์ ์์ต๋๋ค.
๊ฐ์ฌ ํด์!
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด ๋ฐฉ๋ฒ์ iOS 13์์ ์ ์๋ํฉ๋๋ค.
์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋ ๋์ ๋ฐฉ๋ฒ์ ์ฐพ์ผ์๊ธฐ ๋ฐ๋๋๋ค.
https://www.dropbox.com/s/wyzc8errinfap1f/TestCrop.zip?dl=0