iOS 14에서 이미지 투수 부분 투명한 문제 및 해결 방법

12637 단어 iOStech

전제 조건


iOS 14 이미지 구덩이 정보


iOS 14는 이미지 벙커의 UI[1]를 변경했습니다.
이 UI는 iOS 14에 추가된PHPickerViewController뿐 아니라 기존UIImagePickerController에도 반영된다.

UINaviationBar의 모양새 사용자정의


UINaviationBar의 배경을 통과하거나 선을 삭제할 수 있는 모자[2]가 있습니다.
UINavigationBar.appearance().isTranslucent = false
UINavigationBar.appearance().shadowImage = UIImage()
UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)

문제.


상기 연결을 적용한 상태PHPickerViewControllerUIImagePickerController에서 열면 ↓의 이미지처럼 검색 영역이 투명해진다.

해결책

UINavigationBar.appearance()의 영향으로 이미지 슬롯이 표시되는 순간UINavigationBar.appearance().backgroundImage의 설정을 초기화하면 됩니다.

PHpickerViewController의 경우


var configuration = PHPickerConfiguration()
configuration.selectionLimit = 1
configuration.filter = .images

let picker = PHPickerViewController(configuration: configuration)
picker.delegate = self

// 表示する直前にリセットする
UINavigationBar.appearance().setBackgroundImage(nil, for: .default)

present(picker, animated: true) {
    // 表示した後に元に戻す
    UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)
}

UIImagePicker Controller의 경우


let picker = UIImagePickerController()
picker.delegate = self
picker.sourceType = .photoLibrary
picker.allowsEditing = true

// 表示する直前にリセットする
UINavigationBar.appearance().setBackgroundImage(nil, for: .default)

present(picker, animated: true) {
    // 表示した後に元に戻す
    UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)
}

결실


↓ 이렇게 이미지 구덩이의 검색 영역이 투명하게 나타났다🎉

그나저나 UINavigationBar.appearance().isTranslucentUINavigationBar.appearance().shadowImage도 초기화하면 기본값이 표시됩니다.
// (前略)

// 表示する直前にリセットする
UINavigationBar.appearance().isTranslucent = true
UINavigationBar.appearance().shadowImage = nil
UINavigationBar.appearance().setBackgroundImage(nil, for: .default)

present(picker, animated: true) {
    // 表示した後に元に戻す
    UINavigationBar.appearance().isTranslucent = false
    UINavigationBar.appearance().shadowImage = UIImage()
    UINavigationBar.appearance().setBackgroundImage(UIImage(), for: .default)
}

일상적인 이야기


원래는 사용UIImagePickerController 화면에서 발견된 현상이다.
나는 위에서 너에게 알려준'사용PHPickerViewController하자'인 줄 알았어...😇

최후

UINavigationBar 맞춤형 외관을 가진 응용 프로그램 관계자들은 이미지 구덩이 주위를 주의하십시오.
각주
참조: The New Photos Picker in iOS 14 - Part 1↩︎
참조: UINaviationBar·UITTabBar에 대한 맞춤형 접근 방식, #탐색 모음의 배경 통과/밑줄 삭제↩︎

좋은 웹페이지 즐겨찾기