IOS35 error - Extensions must not contain stored properties 이슈 발견 보고서 📌 발견일 / 해결일 22.03.10 📌 이슈사진 📌 상황설명 extension에 깔끔하게 정리하고자 관련 변수를 같은 위치에 선언했더니 발생했다. 📌 Solution extension에는 저장프로퍼티를 넣을 수없고 연산프로퍼티만 사용가능함 변수 선언부에 따로 설정하거나, extension에 꼭 넣어야한다면 연산프로퍼티로 선언할것 참고 → https://zeddios.tistory.com/263 2022. 3. 13. 앱의 다크모드를 바꾸는 여러가지 방법 📌 개념 IOS13 부터 다크모드가 도입되었습니다. 앱전체를 시스템설정에 따라 다크모드로 적용하는 것이라면 별 이슈가 없겠지만 아래와 같은 경우가 있을 수 있습니다. 일부만 다크모드를 적용하는 경우 앱 내부 설정에서 다크모드 변경을 제공하는 경우 [Common Property] OverrideUserInterfaceStyle → 사용자인터페이스스타일 재정의 Apple Document https://developer.apple.com/documentation/uikit/uiview/3238086-overrideuserinterfacestyle var overrideUserInterfaceStyle: UIUserInterfaceStyle { get set } Discussion Use this propert.. 2022. 3. 9. Progress Bar progress bar는 앱에서 로딩을 할때 자주 보여주는 UI Component이다. 위처럼 웹 브라우저 상단의 로딩을 보여주기도 하고 이런 다양한 로딩의 시각적 요소로 사용할 수있다. 세팅에서 가장 중요한 것은 두가지 이다. 먼저 프로그래스바를 변수지정하고 @IBOutlet progressBar: UIView! progressBar.progress progressBar.SetProgress 아래 위치한 progress 그리고 setProgress이다. progress는 최초값을 지정해주는 역할 setProgress는 갱신할 현재값을 지정해주는 역할을 한다. 그외에도 tintColor를 결정하는 progressTintColor: UIColor? 프로그래스의 배경색을 결정하는 trackTintColor:.. 2022. 2. 16. xib의 이름으로 화면전환하기 (present) 먼저 생성한 xib 의 File's Owner에 들어가 Class명을 ViewController와 클래스명을 일치시켜준다. 내 파일에서의 클래스명과 xib파일이름은 AAViewController으로 동일하게 맞췄다. let vc = AAViewController(nibName:"AAViewController", bundle: nil) vc.modalPresentationStyle = .fullScreen self.present(vc, animated: true, completion: nil) 프레젠 테이션 스타일을 .fullScreen으로 하지 않으면 단순하게 모달스타일로 띄워지기 때문에 드래그하면 다시 전화면으로 갈 수 있다. 단순하게 세팅페이지 같은 걸 사용하는게 아니라 페이지 자체를 이동시켜서 돌아.. 2022. 2. 14. Codable 오늘의 회사업무에서는 처음으로 Codable을 사용했습니다. Codable은 Encodable과 Decodable이라는 두가지를 가지고 있습니다. 조금 친숙한 단어로 말하자면, 인코딩, 디코딩을 말합니다. 그러면 무엇을 인코딩 디코딩 하느냐? Apple 공식 문서에 따르면 외부 표현(external representation) 이라고 하는데 그냥 json이라고 생각하면 된다. json은 우리가 무언가를 인터넷에서 할 때, 사용할 특정 정보를 담고 있다. 예를 들어 내가 사이트에 로그인을 입력한다고 가정해보면. 로그인을 하는 순간그냥 뿅 끝나는 것이아니라. 사이트에 나의 정보들이 담기기 시작한다. 내 컴퓨터엔 내 정보가 항상 저장되어있는게 아니다. 사이트는 빈껍데기였다가 내가 로그인 하는 순간. 아~ 기꼬.. 2022. 2. 11. 로그아웃구현 - push와 present 그리고 NotificationCenter, View의 생명주기 지난 두 글에서 비슷하지만 다른 두가지의 뷰를 전환하는 방식을 다루었다. View와 View를 연결하는 방식 https://h1guitar.tistory.com/164 push와 present 안녕하세요 오늘은 앱을 개발하는 과정에서 기본적으로 요구하는 화면전환에 대해서 알아보겠습니다. 기본적으로 화면을 전환하는 방식은 Navigation을 이용해서 Stack처럼 쌓아가는 방식과 그냥 h1guitar.tistory.com present 세로 방향으로 전개되는 View UIViewController의 메소드 실행시키면 기존의 UIViewController 위에 새로운 뷰를 띄운다. 이전 뷰로 돌아가기 위해서는 dismiss push 가로 방향으로 전개되는 View UINavigationController의.. 2022. 1. 12. (뷰의 이동) Segue를 연결하는 3가지 방법 segue 세그웨이를 연결하는 방법은 3가지가 있다. 1. 스토리보드에서 UIbutton을 배치하고 ctrl 키를 누르고 목적지가 될 뷰컨트롤러에 드래그를 하면 액션 세그창이 생성됨. 원하는 방식을 선택하면된다. 2. performSegue 메소드를 이용하여 연결하기 (storyboard + code) 스토리보드에서 출발하는 viewController에서 도착하는 viewController를 연결한뒤 생기는 연결 선(세그웨이)를 클릭하면 identifier를 설정해주고 코드상에서 연결하는 방법 코드상에서는 prepare와 Perform Segue 메소드를 이용해 행동을 정의할 수 있다. prepare override func prepare(for segue: UIStoryboardSegue, sender.. 2022. 1. 5. Delegation Programming Design Pattern Delegation : 위임 Delegate : 위임하다 어떤 객체가 자신이 할일을 다른 객체에게 위임하는 형태 언제 써야 하나? Use to break up large classes or create generic, reusable components. UIKit 에서 가장 흔하게 쓰입니다. (e.g. ~DataSource , ~Delegate 가 들어간 이름들) DataSource: 데이터를 제공 (e.g. UITableViewDataSource : UITableViewCell 를 제공 to display) Delegate: 데이터나 이벤트를 받음 (e.g. UITableViewDelegate : row가 선택될 때마다 알림제공) 주의사항 매우 유용하지만 과하게 사용할 수 있다. 하나의 객체에 대해 .. 2021. 12. 15. UISlider Control event 이전에 사용했던 UIButton과 달리 value changed event일 때, action을 호출한다. 다양한 이벤트가 존재함. 내가 사용하는 것마다 event가 다르기때문에 공식문서 참고 https://developer.apple.com/documentation/uikit/uicontrol/event Apple Developer Documentation developer.apple.com 2021. 12. 15. Gesture Recognizer 제스쳐인식기는 스토리보드에서 오브젝트 추가를 통해 생성할 수 있습니다 원하는 제스쳐를 찾아서 뷰컨트롤러에 드래그 적용시 뷰컨트롤러의 상단에 표시가 됩니다. 실제로 작동하기 위해서는 1. 링크시킨다 2. 액션에 대한 코드도 작성이 돼야합니다. @IBAction func tapBackground(_ sender: UITapGestureRecognizer) { print("tap background view") // self.view.endEditing(true) // self.inputField.resignFirstResponder() // self.inputField.endEditing(true) } 주석처리한 3가지 코드는 텍스트필드에 입력하고 마쳤을때, 화면을 터치시 키보드가 사라지도록 설정하기 위한 .. 2021. 12. 15. 이전 1 2 3 4 다음 반응형