source

투명 배경의 신속한 모달 뷰 컨트롤러

nicesource 2023. 8. 17. 21:26
반응형

투명 배경의 신속한 모달 뷰 컨트롤러

저는 이 주제가 꽤 유명하다는 것을 알지만, 프로그래밍 언어에서 약간의 문제가 발생했습니다. 사실 저는 여전히 코드를 어디에 두었는지 이해하지 못합니다.사건 전체를 말씀드리죠

enter image description here

저는 일반적인 것과는 조금 다른 모달 스위프트를 만들려고 합니다.버튼을 클릭하면 화면에 (모달 유형에 따라) View Controller가 표시되지만 배경은 투명합니다.레이블이 있는 파란색 보기만 표시됩니다.이 ViewController가 표시되면 배경은 투명하지만 전환이 완료되는 즉시 검은색 배경으로 유지됩니다.이미 불투명 옵션을 비활성화하고 일부 옵션을 테스트했지만 이 문제 해결은 수행되지 않았습니다.

누가 도와줄 수 있나요?

이 비디오는 케이스(https://www.youtube.com/watch?v=wT8Uwmq9yqY) 의 시뮬레이터에서 테스트한 것입니다.

저는 swift로 시작했지만, Xcode로 프로그래밍하는 방법에 대해 아직도 상당히 망설이고 있습니다. 이 문제를 해결하기 위한 다음 코드가 포함된 질문에 대한 답변을 읽었습니다.

self.presentingViewController.providesPresentationContextTransitionStyle = YES;
self.presentingViewController.definesPresentationContext = YES;
modal.modalPresentationStyle = UIModalPresentationOverCurrentContext;

이 코드를 어디에 두나요?

다음과 같이 할 수 있습니다.

기본 보기 컨트롤러에서 다음을 수행합니다.

func showModal() {
    let modalViewController = ModalViewController()
    modalViewController.modalPresentationStyle = .overCurrentContext
    presentViewController(modalViewController, animated: true, completion: nil)
}

모달 보기 컨트롤러에서 다음을 수행합니다.

class ModalViewController: UIViewController {
    override func viewDidLoad() {
        view.backgroundColor = UIColor.clearColor()
        view.opaque = false
    }
}

스토리보드로 작업하는 경우:

스토리보드 세그먼트를 추가하기만 하면 됩니다.Kind로 설정한.Present Modally모달 뷰 컨트롤러와 이 뷰 컨트롤러에서 다음 값을 설정합니다.

  • 배경 = 선명한 색상
  • 도면 = 불투명 확인란 선택 취소
  • 프레젠테이션 = 현재 컨텍스트

Crashalot이 그의 논평에서 지적했듯이: segue는 반드시 사용해야 합니다.Default둘 다를 위하여Presentation그리고.Transition.사용.Current Context위해서Presentation투명하게 유지하는 대신 모달이 검은색으로 바뀝니다.

언급URL : https://stackoverflow.com/questions/33104743/swift-modal-view-controller-with-transparent-background

반응형