본문 바로가기

iOS

(63)
[iOS] Codable 개념 뿌수기!! #3 Codable protocol 란? Swift 표준 라이브러리에서 데이터를 encoding 또는 decoding하기위한 접근을 표준화했습니다. 고 녀석이 바로 Codable인데요. Codable은 Encodable과 Decodable의 typealias입니다. 타입으로 사용하거나 제너릭 형태로 제약을 걸 경우에 어떤 타입이든 Encodable 또는 Decodable 두 프로토콜의 요구조건을 만족시키게 됩니다. Encodable 또는 Decodable 프로토콜을 적용한 Codable타입의 데이터는 Encodable 또는 Decodable 프로토콜을 구현하므로 external representation(== JSON, 인스턴스 등)로 인코딩 또는 디코딩 할 수 있습니다. Encodable또는 Decodab..
[iOS] JSON형식의 데이터 파싱 뿌수기!! with Alamofire #2 이전에 작성한 RESTful API 파싱 방법은 URLRequest에 헤더를 정의하고 URLSession의 dataTask(with:)를 통해 결과 응답 처리 이후 .resume()로 HTTP 요청 메시지를 전송했었습니다. Alamofire은 URLRequest와 URLSession을 더 쉽게 사용할 수 있는 오픈 라이브러리 입니다. HTTP 네트워킹을 위해 스위프트 기반으로 개발된 비동기 라이브러리이고,, 정말 편리합니다. Codable을 채택한 데이터 파싱은 코드 길이가 많이 줄어든다고 생각합니다. Alamofire(5. ver) 특징 URLRequest + URLSession 객체를 Wrapping해 AF namesapce를 사용해 간결하게 사용할 수있게되었습니다. 서버요청 간결!! 서버 응답 컨텐..
[iOS] JSON형식의 데이터 파싱 뿌수기!! with URLRequest, URLSession #1 JSON이란? https://www.json.org/json-ko.html JSON JSON (JavaScript Object Notation)은 경량의 DATA-교환 형식이다. 이 형식은 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성함에도 용이하다. JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1 www.json.org JSON은 자바스크립트 객체 만들때 사용되는 표현 방법 입니다. (Swift의 딕셔너리 같은 성격!!) 데이터를 저장하고나, 전송할때 C,C++, 웹서버, db등 많이 사용된다. key: value타입으로 이루어져있고 배열 또한 가능합니다. 크게 JSON 객체는 { 와 } 로 이루어져있고 JSO..
[iOS] NavigationBar backgorund color 설정하기 | 내비게이션 바 백그라운드 색 안바뀌는 이유 네비게이션 바의 백그라운드( 노치있는부분까지) 전부 컬러를 변경하고 싶었다. 기본적으로 navigationItem 을 통해 titleView를 바꿀 경우 GoodNews 영역의 UIView를 바꿀수 있습니다. 또한 prompt를 바꿀 경우 topItem Title위에 추가적인 글을 작성할 수 있습니다. 네비게이션바를 자세하 보면 기본적으로 UIKit에서 제공하는 설정을 사용하려면 barStyle을 설정해주면? self.navigationController?.navigationBar.barStyle = .black 이렇게 스크롤했을 때만 잠깐 보이고 평상시에는 보이지 않습니다. .isTransluecnt까지 변경해주어야 보입니다. 위 계층구조의 UIBarBackground가 힘이 없어진 모양인데,, Goo..
[Swift] UIAlertController 커스텀 하는 방법 UIAlertController를 만들고 title과 action button중간에 textField를 넣을 것이다. let alert = UIAlertController(title: nil, message: "사용자님 이름을 입력해주세요", preferredStyle: .alert) let btn = UIAlertAction(title:확인,style:.default) { (_) in //추후 사용자의 tf 입력시 alert를 종료하면서 다른 view의 label text 갱신할 거에요. } alert.addAction(btn) 기본적인 alert 생성하고 첫번째의 경우는 //컨테이너 뷰 let centerView = UIView() //텍스트 필드 let tf = UITextField() tf.fra..
[Swift/UIkit] dequeueReusableCell(withIdentifier:) in TableView과 문제점 About dequeueReusableCell 테이블 뷰와 테이블 뷰 셀? dequeueReusableCell(withIdentifier:) 란? prepareForReuse()는 언제..? 테이블 뷰와 테이블 뷰 셀의 관계 특정 데이터들에 의해 테이블 뷰 셀이 구성됩니다. 그렇게 구성된 여러개의 셀이 tableView(_: cellForRowAt:)에 의해 tableView의 Cell로 삽입됩니다. 이때 데이터들은 단순히 손으로 셀 수도 있지만 모바일 화면에 내려도 내려도 끝 없을 정도로 수없이 많은 데이터에 의해 테이블의 셀이 구성될 수도 있습니다. 단순히 몇개의 테이블 셀을 구성할 때는 굳이 dequeueReusableCell(withIdentifier:)를 사용하지 않아도 됩니다. 하지만 다량의..
[Swift/UIKit] UIButton.setBackgroundImage 이미지 설정 안될때!! (커스텀 버튼) 커스텀 버튼의 백그라운드 설정이 안 될때( in IOS 15 ) 시행착오 해결법!! 시행 착오 클래스를 통해 커스텀 버튼을 만들고 있었다. 코드와 스토리보드에서 사용할 수 있도록 만들었다. public class customButton : UIButton { public required init?(coder aDecoder : NSCoder) { super.init(coder : aDecoder) self.setBackgroundImage(UIImage(named: "lovelyButtonImg"), for : .normal) self.tintColor = .white } } 우선 스토리보드에서 버튼을 추가한 후 실행을 했는데 버튼의 background이미지가 적용이 되지 않았다. 더보기 버튼의 클래스 ..