본문 바로가기

모바일앱199

component와 split 함수 그리고 map함수 1. component() parameter : separatedBy separator : 구분기호 입력 구분자를 기준으로 무조건 단어로 처리한다. 구분자를 “ ”로 할경우 스페이스를 기준으로 양옆을 단어로 인식 띄어쓰기 하나만 있어도 배열의 갯수가 2개로 인식 구분자를 삭제 ( split은 구분자 포함 ) var s = "this is powerful pineapple" print(s.components(separatedBy: "p")) // ["this is ", "owerful ", "inea", "", "le"] var t = " this is powerful pineapple" print(t.components(separatedBy: " ")) // ["", "", "this", "is", "p.. 2022. 3. 7.
노치 부분까지 레이아웃 설정하는 방법 레이아웃을 만들때, 노치부분까지 이미지를 넣을것인지 결정후, 배경을 image로 넣는경우 1. StoryBoard에서 image를 넣어준다. 2. 배경으로 사용할 이미지를 상 하 좌 우 를 0으로 맞춰준다. 3. 노치가 있는 모델은 자동으로 노치길이만큼 top이 적용된다. 풀어줄지 결정 4. 범위를 SuperView로 하는 경우는 해당 레이아웃을 선택해 firstItem을 변경 2022. 2. 24.
JSON이란 JSON은JavaScriptObjectNotation의 약자 예시1) 출처 : 위키피디아 { "이름": "홍길동", "나이": 25, "성별": "남", "주소": "서울특별시 양천구 목동", "특기": ["농구", "도술"], "가족관계": {"#": 2, "아버지": "홍판서", "어머니": "춘섬"}, "회사": "경기 수원시 팔달구 우만동" } JSON은 name: value 형태의 쌍으로 이루어져있습니다. 첫째줄을 보면 name은 "이름"이고 value는 "홍길동"이라고 나와있죠. 둘째줄을 보면 name은 "나이"이고 value는 25입니다. name에 위치한 것들은 모두 String입니다. 그렇기 때문에 ""로 묶여있죠. 기억하시죠!! String은 ""로 표기 반면에 value자리에는 다른 .. 2022. 2. 23.
App의 생명주기 App의 생명주기 App의 생명주기는 아래 5가지 상태를 가진다. Not Running : 실행되지 않은 상태 In Active : 앱이 실행 중인 상태이지만 아무런 event를 받지 않은 상태 Active : 앱이 실행중이며 event가 발생한 상태 BackGround : 앱이 BackGround에 있는 상태이지만 실해오디는 코드가 있는 상태 Suspended : 앱이 BackGround에 있고 실행되는 코드가 없는 상태 앱이 동작하는 과정을 나누어보면 아래 4가지 상태를 볼 수 있다. 앱을 시작할 때 앱을 비활성화 할 때 앱을 활성화 할 때 앱을 종료할 때 application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions => 어플리케이션.. 2022. 2. 22.
Issue - ScrollView - has ambiguous scrollable content - Issue - ScrollView - has ambiguous scrollable content - 이슈 발견 보고서 📌 발견일 / 해결일 22.02.21 / 22.02.21 📌 이슈사진 📌 상황설명 학습중 발견 → Xcod StoryBoard에서 ScrollView를 사용하는 경우 UIScrollView에 뷰를 올리면 위와 같이 Scrollable Content Size Ambiguity 라는 에러를 마주하게 됩니다 참고 https://corykim0829.github.io/ios/UIScrollView-with-storyboard/# https://iamprgrmr.tistory.com/30 https://dkfk2747.tistory.com/21 📌 Solution 아래 참조 ScrollView는 .. 2022. 2. 21.
Delegate 패턴 Cocoa Design Pattern - Delegate 델리게이트 패턴 Delegate 패턴이란 객체 간의 커뮤니케이션을 돕는 디자인 패턴 중 하나이다. 주로 객체 A가 객체 B에게 어떤 이벤트나 작업이 발생했을 때, 객체 B가 이에 대한 처리를 하도록 위임하는 메커니즘을 제공한다. 이 패턴을 사용하면 두객체간 의존성을 느슨해지고 유연하게 만든다. Delegate패턴의 주요 컴포넌트 Delegate Protocol (A에 구현) 객체 A는 어떤 이벤트나 작업에 대한 처리를 위임받는 객체 B가 지켜야 할 규칙을 정의한다. Delegate Property (A에 구현) 객체 A는 객체 B가 자신의 delegate 역할을 수행할 수 있도록 대리자 프로퍼티를 생성한다. 대개 이 프로퍼티는 약한 참조(weak .. 2022. 2. 18.
Progress Bar(2) UIProgressView 구현 방법 핵심 progressView.progress = 0.1: progress의 위치 (0 ~ 1) progressView.setProgress(_:animated:): progress의 위치 + 애니메이션 적용 (0 ~ 1) https://ios-development.tistory.com/741 [iOS - swift] UIProgressView (로딩, 프로그래스 바) UIProgressView Loading이 얼마나 지속되는지 알 수 있는 경우 UIProgressView를 사용 Loading이 얼마나 지속될지 알 수 없는 경우는 Spinner (UIActivityIndicatorView) 사용 UIProgressView 구현 방법 핵심 pr.. ios-developm.. 2022. 2. 17.
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.