본문 바로가기

모바일 앱개발/iOS91

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.
2주차 프로젝트03_업다운게임 1. 목표 : Outlet과 Action을 구현해 버튼만들기, 화면터치시 제스쳐 인식하기 IBOutlet IBAction Gesture Recognizer 링크된 것들 이름 바꾸기 Mark: 입력하기 2. 구현화면 - 왼쪽label: start!, up! down! 정답입니다! 메세지 출력 - 오른쪽label: 제출한 숫자 카운트 - textfield: 숫자를 입력하는 곳 - 제출button: 입력값 없음, 입력값이 잘못되었음 등의 출력을 나타낼수 있도록 함수 설정 3. gesture recognizer 4. 링크된 요소들의 이름을 바꿀경우 Editor - refactor - rename에서 수정가능 5. Mark: 주석 입력하기 // Mark: [입력] // Mark:- 입력시 구분선 생성 2021. 12. 15.
UITextfield에 입력후 키보드 숨기기 우리가 핸드폰을 사용할 때, 당연하게 생각해왔던 것 중 하나는 "텍스트를 입력하고 나면 키보드가 자연스럽게 사라지는 것이다." 그 당연한 것들이 개발자의 세계에서는 당연하지 않고 하나하나 지정해줘야하는 것이다. 이걸 처리 하지않으면 입력이 끝나도 키보드는 영원히 화면에 남는다. Textfield가 이미 만들어져있는 상황,, override func touchesBegan(_ touches: Set, with event: UIEvent?){ self.view.endEditing(true) } 이 코드만 viewController의 아무곳에나 추가하면 된다. + 또다른 방법 // UITapgestureRecognizer를 선언해 둔 상태에서 함수안에 아래 코드를 삽입하고 셋중에 아무거나 사용해도된다. @IB.. 2021. 12. 14.
2주차 프로젝트02_프로필 목표 UIKit 둘러보기 Auto Layout 알아보기 Human Interface Guideline for iOS 알아보기 View Programming Guide 알아보기 UIKit에 대해서는 다른 포스팅에 정리했다. https://h1guitar.tistory.com/133 UIKit 알아보기 UIKit User Interface Kit iOS 또는 tvOS의 사용자 인터페이스 구성을 위한 프레임워크 Foundation 프레임워크와 더불어 iOS의 대부분의 큰 기능을 이루는 뼈대 UIKit은 이미 Foundation을 import하고 있다. 각각.. h1guitar.tistory.com https://developer.apple.com/documentation/uikit Apple Developer.. 2021. 12. 14.
2주차 프로젝트01_웹브라우저 목표 : WKWebView를 통해 웹페이지 보여주기 1. 버튼구현 : 뒤로가기, 앞으로가기, 새로고침 2. 마지막 페이지 저장 3. 다시 실행시 로드 13버전 이상의 세팅 sceneDelegate는 사용하지않을 때 참고사항 https://velog.io/@dev-lena/iOS-AppDelegate%EC%99%80-SceneDelegate [iOS] AppDelegate와 SceneDelegate Xcode에서 프로젝트를 생성하면 자동으로 AppDelegate.swift와 SceneDelegate.swift 파일이 추가되어 있어요! 오늘은 이 두 swift 파일에 있는 AppDelegate클래스와 SceneDelegate클래스에 대해서 알아보려고해요 😄 velog.io 실행화면 문제점: 1. 구글에서만 .. 2021. 12. 14.
UIKit 알아보기 UIKit User Interface Kit iOS 또는 tvOS의 사용자 인터페이스 구성을 위한 프레임워크 Foundation 프레임워크와 더불어 iOS의 대부분의 큰 기능을 이루는 뼈대 UIKit은 이미 Foundation을 import하고 있다. 각각의 공식문서들을 보면서 하나씩 익히는 게 좋다. -> 각 부분에 Important같은 것들을 꼭 숙지할 것 https://developer.apple.com/documentation/uikit Apple Developer Documentation developer.apple.com 2021. 12. 14.
옵셔널 복습 고급기능 4가지 // Forced unrapping // Optional binding (if let) // Optional binding2 (guard) // Nill coalescing import SwiftUI var carName: String? = "땡크" //고급기능 4가지 // Forced unrapping // Optional binding (if let) // Optional binding2 (guard) // Nill coalescing // 영어로 공부하는 이유 : 공부하다가 막히는 경우 영어로 검색하면 보다 다양한 루트를 발견가능 // Forced unrapping > 박스안에 있는 값을 꺼내서 사용할 때, 강제로 여는 것 // Optional binding (if let) > 부드.. 2021. 11. 18.
arc의 간단 개념 ARC(Auto Reference Couting) 이 ARC기법은 바로 iOS에서 메모리 관리를 해주는 핵심입니다. "왜 메모리 관리를 해주어야 할까?" 만약 쓸모없는 메모리가 너무 많아지면 앱이 느려지고 적정량을 초과하면 결국 앱이 꺼져버릴 수 있습니다. 이것은 유저를 이탈하게 만들수 있는 치명적인 것이죠. "그럼 쓸모없는 메모리는 왜 생기는걸까?" 쓸모없는 메모리는 다른 말로 표현하면 메모리가 어디선가 새고 있다는 말로도 표현가능합니다. 이렇게 메모리가 샌다는 것을 메모리 릭(메모리 누수) 현상이라고 하는데요. 이 메모리 릭 현상을 자동으로 막아주는 것이 바로 ARC입니다 ! 2021. 11. 17.
반응형