๋ฉ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ๐
์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ ํํ ๋ฌด์์ ๋ฌ์ฑํ๋ ค๊ณ ํฉ๋๊น?
์ง๋ฌธ์ด ํ๋ ์์ต๋๋ค. ๋๊ตฌ ๋ชจ์์ ์์น๊ฐ ํ๋จ์ ๋๋ฌด ๊ฐ๊น์ต๋๋ค.
safeAreaInsets.bottom์ด ์ฌ๋ฐ๋ฅด์ง ์์ต๋๊น?
์ฌํ ๊ฐ๋ฅํ ์์ ํ๋ก์ ํธ๊ฐ ํ์ํ์ญ๋๊น? TestSafeArea.zip
@zhangao0086 iOS13์์๋ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ณ ์ฑ ์ทจ์๋ฅผ ํญํด๋ ์ถฉ๋์ด ๋ฐ์ํฉ๋๋ค. ์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
ํ...
์๋
ํ์ธ์!
๊ทธ ์ด์ ๋ CropViewController์ ์ฌ์ฉ์ ์ง์ VC ์ ํ์ ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ ํ๊ณผ ๊ด๋ จ๋ iOS13์ ์ฐจ์ด์ ์ ๋ํด ์กฐ์ฌํด์ผ ํฉ๋๋ค. ๊ทธ๋ฅ ๋นํ์ฑํํ๋ฉด ๋ฉ๋๋ค. :)
ํ์ผ: CropViewController.swift, ๋ฌธ์์ด: 561.
fileprivate func setUpCropController() {
addChild(toCropViewController)
transitioningDelegate = (toCropViewController as! UIViewControllerTransitioningDelegate)
toCropViewController.delegate = self
toCropViewController.didMove(toParent: self)
}
๊ธฐ๋ณธ ์ ํ์ ์ฌ์ฉํ๋ ค๋ฉด ์ด ์ค์ ์ฃผ์ ์ฒ๋ฆฌ/์ ๊ฑฐํ ์ ์์ต๋๋ค.
transitioningDelegate = (toCropViewController as! UIViewControllerTransitioningDelegate)
์ ๋ ์ด ๋ฌธ์ ๊ฐ ์ปค์คํ ์ ํ๋ง์ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค. ํ์ค๋ฒ์ UIImagePickerController์์ ์ปจํธ๋กค๋ฌ๋ฅผ ํธ์ํ์ฌ ์ปจํธ๋กค๋ฌ๋ฅผ ํ์ํฉ๋๋ค. iOS 13์ ํ์ค๋ฒ๋ ๋ทฐ์ ํ์ดํ๋ฅผ ํฌํจํ๋ฏ๋ก ์ด ์ปจํธ๋กค๋ฌ๋ ์ด์ ํ์ดํ๊ฐ ์ค์ ๋ณด๋ค ๋ ํฌ๋ค๊ณ ์๊ฐํ๊ณ ํ์ดํ๋ฅผ ์ํ ์ถ๊ฐ ๊ณต๊ฐ์ ์ฐจ์งํฉ๋๋ค. ๋ฐ๋ผ์ ํ์ดํ๊ฐ ์ค๋ฅธ์ชฝ์ ์์ผ๋ฉด ์ด ์ปจํธ๋กค๋ฌ์ ์ฝํ ์ธ ๊ฐ ์ค๋ฅธ์ชฝ์ ํ๋ฉด์์ ๋์ถ๋๋ ๋ฑ์ ๋๋ค. ์์ ์์ญ์ผ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ์์ ํด์ผ ํ์ง๋ง ์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ๊ณ ์น ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ํนํ ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ผ๋ก ์ํ๋๊ธฐ ๋๋ฌธ์ ์ฌ๋ฌ ๊ฒฌํด๊ฐ ๊ด๋ จ๋์ด ์์ต๋๋ค.
๋๋ safeAreaLayoutGuide๊ฐ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋๊ฐ์์ ์ด๋ป๊ฒ๋ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ฐฉ๊ธ ์ฝ๋๋ฅผ ์ดํด๋ณด์๋๋ฐ ์ด๋์๋ ํฌํจ๋์ด ์์ง ์์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ ๋ง์ ๋์์ด ๋์์ผ๋ฉด ํฉ๋๋ค. ๋ค์์ ์ฌ๋๋ค์ด ์ด ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์๋ ๋ช ๊ตฐ๋ฐ ๋ ์์ผ๋ฉฐ ์ฌ๊ธฐ์๋ ์ ๊ทผํ ์ ์๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ๋ ํฌํจ๋์ด ์์ต๋๋ค.
https://stackoverflow.com/questions/57866771/ios-problem-of-display-the-popover-border-in-the-ios13
๋ํ ํ์ฌ ์ฝ๋์์ ์ด๊ฒ์ด ์์ ๋์๋ค๋ฉด ์นด๋ฅดํ๊ณ ๋ฅผ ์ฌ์ฉํ๋ฉด์ ํ์ธํ์ง ๋ชปํ์ ์๋ ์์ง๋ง ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๋ค.
์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น? @ํ์ฌ๋ฆฌ๋ฒ
์๋ ํ์ธ์ @zhangao0086์ ๋๋ค. ํฌ๊ด์ ์ธ ์ํ ์ฑ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
์ ๋ ์ง๊ธ ๋ค๋ฅธ ํ๋ก์ ํธ์์ iOS 13 ํ์ฌ๋ฅผ ์ง์ํ๋๋ผ ๋ฐ๋น ์ ์์ง ์ด๊ฒ์ ๋ณผ ๊ธฐํ๊ฐ ์์์ต๋๋ค. ์ฃ์กํฉ๋๋ค!
๋ด๊ฐ ํ ์ ์์ ๋ ๊ทธ๊ฒ์ ์กฐ์ฌํ ๊ฒ์ ๋๋ค. ๊ทธ ๋์ ๋๊ตฐ๊ฐ๊ฐ ์์ ์ฌํญ์ ์ฐพ์ PR์ ์ ์ถํ ์ ์๋ค๋ฉด ๋งค์ฐ ๊ฐ์ฌํ ๊ฒ์ ๋๋ค!
๋น์์๋ TOCropViewController
์ ๋ชจ๋ Objective-C ์ธํฐํ์ด์ค๋ฅผ Swift๋ก ๋ณํํ ์ ์์๊ธฐ ๋๋ฌธ์ ์๋ CropViewController
๋ฅผ ๋ณ๋์ ๋ทฐ ์ปจํธ๋กค๋ฌ๋ก ๋ง๋ค์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด์ ๋ ๋ํผ๋ฅผ ์ ์ฌ์ ์ผ๋ก ๋ฒ๋ฆด ์ ์์ ์ ๋๋ก ์ํธ ์ด์ฉ์ฑ์ด ํฅ์๋์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์์ผ๋ก ์ด์ ๊ฐ์ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@TimOliver ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค! ์์ ์ดํดํด์๐
์๋ ํ์ธ์ @zhangao0086์ ๋๋ค! ์ง์ฐ ๋ผ์ ์ฃ์กํฉ๋๋ค!
๋๋ ๋ง์นจ๋ด ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์กฐ์ฌํ ์์ ์๊ฐ์ ๊ฐ๊ฒ ๋์๋ค. ๋ถ๋ชจ ์ปจํ
์ด๋ ์์ค์์๋ ๋
ธ์น๋ฅผ ์ ์ธํ๊ณ safeAreaInsets
๊ฐ 0์ด์๊ธฐ ๋๋ฌธ์ ์ด์ํ์ต๋๋ค.
๊ทธ๋๋ ๊ณ ์น ๊ฒ ๊ฐ์์. ์ด๊ฒ์ ์๋ก์ด iOS 13 ๋ชจ๋ฌ ๋์คํ๋ ์ด์ ๋ ๋ค๋ฅธ ๋ถ์์ฉ์ด์์ต๋๋ค. modalPresentationStyle
๋ฅผ .fullScreen
ํ์ง ์์ผ๋ฉด ๋ทฐ ์ปจํธ๋กค๋ฌ๊ฐ ์ฝ์
์ ๋ฐ๋ฅด์ง ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
์์ง ์ ํฌ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์ถ์ํ์ง ์์์ง๋ง(Catalina๋ก ์
๋ฐ์ดํธํ์ ๋ ๋ด CI ์๋ฒ๊ฐ ๋์ด์ก์ต๋๋ค. ๐
) ๋ง์คํฐ ๋ธ๋์น์ .fullScreen
ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๋ง์คํฐ์์ ๊ฐ์ ธ์์ ์ง๊ธ ์๋ํ๋์ง ํ์ธํด ์ฃผ์๊ฒ ์ต๋๊น?
CocoaPods๋ฅผ ํตํด ๋ง์คํฐ์์ ๊ฐ์ ธ์ค๋ ๊ตฌ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
pod 'CropViewController', :git => 'https://github.com/TimOliver/TOCropViewController.git'
๊ฐ์ฌ ํด์!
@TimOliver ํ๋ฅญํ ์์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
ํ๋ฅญํ! ๋ด๊ฐ ์์ํ ๋๋ก ์ ํํ๊ฒ ์๋ํ๊ณ ์์ต๋๋ค! ๐
๋ํ ๋ด ์ฝ๋์์ cropViewController.modalPresentationStyle = .fullScreen
๋ฅผ ์ค์ ํด์ผ ํ์ต๋๋ค(๋จ์ํ ๋ง์คํฐ ๋ถ๊ธฐ๋ก ์
๋ฐ์ดํธํ๋ ๊ฒ์ด ์๋). ๋์๊ฒ ๋ช
ํํ์ง ์์ ๋ฉ๋ชจ๋ฅผ ์ฌ๊ธฐ์ ์ถ๊ฐํฉ๋๋ค.
์ด ์์ ์ Swift ์ฝ๋์์๋ง ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ ๊ทธ๊ฒ์ด ๊ฐ๊ด์ ์ธ C์์ ์๋ํ์ง ์๋์ง ์๋ ์ฌ๋์ด ์์ต๋๊น?
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์๋ ํ์ธ์ @zhangao0086์ ๋๋ค! ์ง์ฐ ๋ผ์ ์ฃ์กํฉ๋๋ค!
๋๋ ๋ง์นจ๋ด ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์กฐ์ฌํ ์์ ์๊ฐ์ ๊ฐ๊ฒ ๋์๋ค. ๋ถ๋ชจ ์ปจํ ์ด๋ ์์ค์์๋ ๋ ธ์น๋ฅผ ์ ์ธํ๊ณ
safeAreaInsets
๊ฐ 0์ด์๊ธฐ ๋๋ฌธ์ ์ด์ํ์ต๋๋ค.๊ทธ๋๋ ๊ณ ์น ๊ฒ ๊ฐ์์. ์ด๊ฒ์ ์๋ก์ด iOS 13 ๋ชจ๋ฌ ๋์คํ๋ ์ด์ ๋ ๋ค๋ฅธ ๋ถ์์ฉ์ด์์ต๋๋ค.
modalPresentationStyle
๋ฅผ.fullScreen
ํ์ง ์์ผ๋ฉด ๋ทฐ ์ปจํธ๋กค๋ฌ๊ฐ ์ฝ์ ์ ๋ฐ๋ฅด์ง ์๋ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.์์ง ์ ํฌ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์ถ์ํ์ง ์์์ง๋ง(Catalina๋ก ์ ๋ฐ์ดํธํ์ ๋ ๋ด CI ์๋ฒ๊ฐ ๋์ด์ก์ต๋๋ค. ๐ ) ๋ง์คํฐ ๋ธ๋์น์
.fullScreen
ํ๋๊ทธ๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ๋ง์คํฐ์์ ๊ฐ์ ธ์์ ์ง๊ธ ์๋ํ๋์ง ํ์ธํด ์ฃผ์๊ฒ ์ต๋๊น?CocoaPods๋ฅผ ํตํด ๋ง์คํฐ์์ ๊ฐ์ ธ์ค๋ ๊ตฌ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฐ์ฌ ํด์!