본문 바로가기
반응형

ios30

modalPresentationStyle .fullScreen과 .overFullScreen의 차이점 modalPresentationStyle의 두 가지 옵션 중 .fullScreen은 모달 뷰 컨트롤러가 전체 화면을 차지하며, 부모 뷰 컨트롤러가 완전히 사라집니다. 다시 말해, 모달 뷰 컨트롤러가 화면 전체를 차지하여 부모 뷰 컨트롤러의 콘텐츠가 보이지 않습니다. 반면에, .overFullScreen은 모달 뷰 컨트롤러가 전체 화면을 차지하지만, 부모 뷰 컨트롤러는 여전히 보이며, 일부 콘텐츠가 여전히 볼 수 있습니다. 즉, 모달 뷰 컨트롤러는 전체 화면을 차지하지만, 부모 뷰 컨트롤러의 일부 콘텐츠가 여전히 보이며 배경은 투명하게 처리됩니다. 따라서, .fullScreen은 모달 뷰 컨트롤러가 전체 화면을 차지하며, 부모 뷰 컨트롤러가 완전히 사라지는 반면에, .overFullScreen은 모달 뷰 .. 2023. 3. 20.
reason: 'Don't know about flushed view iOS에서 addSubView 메서드를 호출 할 때 발생합니다. 뷰 계층 구조에서 뷰를 찾지 못했을 때 발생합니다. 오류가 발생하는 이유는 일반적으로 다음과 같은 경우입니다. 추가하려는 서브뷰가 메모리에서 해제되었거나, 이전에 다른 뷰에 추가되었을 경우, addSubView를 호출하여 이미 제거된 뷰를 추가하려고 시도하는 경우입니다. 추가하려는 뷰가 아직 화면에 표시되지 않은 경우입니다. 뷰를 추가하기 전에 슈퍼 뷰에 추가하여 뷰를 보이게 하거나 setNeedsDisplay 메서드를 호출하여 뷰를 다시 그리도록 지정해야합니다. 추가하려는 뷰가 슈퍼 뷰와 이미 서로 다른 계층 구조에 있을 때 발생합니다. 뷰를 서로 다른 뷰 컨트롤러에서 사용하거나 슈퍼 뷰와 상관없는 뷰를 만들려는 경우입니다. 추가하려는 뷰.. 2023. 3. 15.
Swift5.1 불투명 타입 (Opaque type) some Type SE-0244 안녕하세요~! 오늘은 Swift5.1에서 소개된 불투명 타입 Opaque type에 대해서 소개해 드리려고 합니다~! 명확한 반환 타입을 외부에 제공하는 대신, Opaque 반환(return) 타입을 가진 함수, 메서드는 자신의 반환타입 정보를 외부에 숨길 수 있습니다. Return 타입을 숨기는 것은 모듈로 호출되는 코드와 모듈 사이에서 유용하게 사용할 수 있습니다. 제네릭(구현부 추상화), 호출하는 곳에서는 구체적인 타입(예 : )을 아는 상태에서 사용했다면, Opaque type은 반대로 구현부는 구체적인 타입을 알고 있지만, 호출하는 곳에서는 특정 프로토콜만 알 수 있습니다. - Generic - 구현부 - 추상화하여 작성 호출부 - 구체적인 타입 지정 (타입을 알 수 있음) - Opaque Ty.. 2023. 1. 20.
Swift5.1 구조체 멤버별 이니셜라이저(Memberwise Initializer)의 기본값 합성 SE-0242 안녕하세요~! 오늘은 Swift5.1에서 새롭게 변경된 사항들을 정리해보려고 하는데요 첫 번째로 멤버셜 초기화(memberwise initializer)시 기본값 합성에 대해서 알아보려고 합니다. 어떻게 달라졌는데 함께 알아보시죠~! 기본적인 구조체 강아지를 만들었습니다. struct Dog { var age: Int var name: String } 컴파일러에서는 아래와 같이 초기화를 합성합니다. init(age: Int, name: String) 그런데 만약 모든 강아지의 나이에 0으로 초기값을 갖는다고 가정 하고 인스턴스를 생성 했습니다. 하지만 인스턴스 생성시 Swift 컴파일러가 초기 값이 있는 속성에 대한 기본값을 생성할 수 없기 때문에 에러가 발생합니다. struct Dog { var age.. 2023. 1. 16.
Swift5.0 SE-0225 배수 구하기 isMultiple(of:) 안녕하세요~! 오늘은 isMultiple(of:)에 대해서 소개해 드리겠습니다. isMultiple(of:)는 배수인지 판단하는 메서드입니다. 여기서 배수는 어떤 정수와 다른 정수를 곱했을 때 나오는 수입니다. 예를 들어 6 = 2 * 3이므로 6은 3의 배수입니다. 아래 코드 처럼 이전에는 % 연산자를 사용해서 배수를 판단하는 코드를 작성했었죠 그렇다면 isMultiple(of:)와 어떤 문제를 해결 할 수 있길래 애플에서 공식적으로 제공하고 있을까요? let number = 6 if number % 3 == 0 { print("6은 3의배수") } 첫 번째로, 0으로 나누는 상황을 볼 수 있는데요. number % 0 == 0 은 무조건 참 입니다. number.isMultiple(of: 0)은 nu.. 2023. 1. 11.
UITextField return키(키보드 하단 오른쪽 파란색버튼) 눌렀을 때 이벤트를 받아보자 func textFieldShouldReturn 안녕하세요~! 오늘은 UITextField Delegate 메소드중 하나인 func textFieldShouldReturn(_ textField: UITextField) -> Bool 에 대해서 알아 보겠습니다. 키보드가 나오는 많은 곳에서 return(엔터키)키를 누른 후 이후 동작들을 처리하고 싶은 경우가 있습니다. 예시로 검색을 완료하고나서 리턴 키를 누르고 난 후, 팝업을 노출시키고 싶다던지 아니면 검색 결과에 대한 화면으로 이동 하고 싶은 경우 등등, 여러 이벤트들이 있을겁니다. 이때 위 함수를 채택하면 처리가 가능합니다. 아래 예시를 같이 보시죠 로그인 화면에서 이메일과 비밀번호를 받을 수 있는 화면 입니다. return키에 대한 이벤트를 받기 위해 delegate를 연결 했습니다. impor.. 2023. 1. 4.
Swift5.0 향후 변경 될 수 있는 Enum(열거형) switch @unknown 속성 처리 SE-0192 안녕하세요~! 오늘은 Enum에 대해서 이야기 해보려고 하는데요. 이번 Swift5.0에서 추가된 @unknown 속성에 대해서 이야기 해보려고 합니다. 어떤 역할을 하는지 같이 보시죠~! 보통 Enum값 분기처리시 Switch문을 많이 사용하는데요. enum에 있는 모든 case들을 무조건 처리 해야합니다. @unknown 속성을 사용해서 미묘하게 다른 두 가지 방법을 구분할 수 있는데요 아래 예시를 보겠습니다. 패스워드 입력시 발생 할 수 있는 에러를 간략하게 enum으로 표현했습니다 enum PasswordError: Error { case short case obvious case simple } 에러 처리를 하는 모습을 볼 수 있습니다. func showPasswordError(_ error: .. 2023. 1. 3.
iOS16 개발자 모드 추가 (MacOS Ventura 이상) 안녕하세요 오늘은 개발자 모드에 대해서 소개해 드리려고 합니다. 이전 iOS 16이전에는 기기 테스트시 별 다른 on, off 설정 없이 개발자 계정에서 해당 디바이스를 등록을 하면 앱 테스트시 사용할 수 있었습니다. 하지만 이번 iOS16가 적용된 디바이스에서는 개발자 모드를 켜야만 Xcode에서 디바이스 테스트가 가능한데요. 개발자 모드는 무엇이고, 왜 추가 되었는지 어떻게 사용하는지 간단하게 알아보겠습니다~! 개발자 모드란? iOS 16에서 새로운 모드로 일반적인 개발자 워크플로를 지원하는 모드입니다. 개발자 모드는 기본값으로 비활성화되어 있고 기기를 명시적으로 개발자 모드 설정해야 합니다. 등록은 시스템 업데이트 및 재부팅 이후에도 유지됩니다. 개발자 모드가 필요한 이유? 강력한 개발자 기능이 해.. 2022. 12. 28.
반응형