Swift (47) 썸네일형 리스트형 [IOS] User Event & MainRunLoop 프로젝트를 진행하는데 MainRunLoop에 관여하는 부분에 있어 버그가 발생했고 이부분에 대해서 포스팅 하려 한다. 버그 발생 부분과 MainRunLoop에 대해서 알아보기 전에 선행으로 AppLifeCycle에 부분적으로 먼저 알고 가보도록 하겠다. 일단 사용자가 앱의 아이콘을 터치했을때 ( 앱을 시작할때 ) C언어 기반의 프로젝트는 main이라는 함수의 호출이 곧 앱의 시작이 된다. IOS의 앱 또한 Object-C 기반임으로 main함수가 호출이 된다. 다만 UIKit framework에서 main함수를 관리 하기 때문에 개발자는 따로 main에 관여해주지 않아도 된다. 그리고 UIKit framework에서 main을 호출 하면서 UIApplicationMain 함수를 호출 하는데이 과정을 통해.. [Swift_Grammar] 변수와 상수 Swift 문법을 처음부터 다시 상기 시키면서 블로그에 기록을 하려한다. 첫번째로 변수와 상수에 대해 알아보겠다. 프로그램에서 사용되는 데이터를 메모리에 임시로 저장을 한다. 그리고 위 과정을 변수나 상수를 생성한다 라고도 말 할 수 있다. 이때 변수와 상수는 특정 데이터 타입에 해당하는 값의 이름이고 변수는 생성 후에 값을 변경할 수 있지만, 상수는 한번 생성 되면 다시 변경할 수 없다. 변수 생성 방법은 var 키워드를 사용한다. 차례대로 설명하면 var -> 변수명 -> 타입명 -> value 이렇게 된다. 또한 아래와 같이 Type Annotation(타입 지정)이 아닌 var somVar: String = "somevalue" 따로 타입명을 명시 하지 않고도Type Inference(타입 추론).. [IOS] PickerView의 element를 직접구성하는 방법 현재 진행하는 프로젝트에서 PickerView에 있는 목록을 선택하면 TableView 각 Cell에는 해당 목록에 맞는 요소들을 보여주게 하는 기능있었다 이 과정중 textField의 inputView를 pickerView로 집어 넣어서 textField 터치이벤트가 작동하면 pickerView를 present 할 수 있는 방법을 알게 되었고 꽤나 유용한 정보인거 같아서 포스팅 한다. 먼저 textField를 만들겠다. 여기서 tintColor를 clear로 설정해지 않으면 textField의 깜빡거리는 커서가 보여질것이다. 그아래는 border를 설정해주었고 기본 text value는 과일로 설정했다. private let textField: UITextField = { let tf = UITextF.. [Swift_Library] PagingKit Paging view 상단에 segment를 같이 표현해주면서 보여주는 뷰를 본적이 있을것이다. 그리고 이번에 진행하게된 프로젝트에서 위와 같은 뷰를 Library 사용으로 구현하는 과정을 포스팅 하려한다. 대부분의 Library들은 개발자들이 사용하기 용이하게 Readme에 Library에 대한 정보와 빌드업 과정을 상세하게 적어놓는다. 덕분에 짧은 시간안에 기능 구현을 시도할 수 있다. 그럼에도 불구하고 이번 작업은 Library에 대한 연구가 다소 필요했던 편이었고 프로세스를 이해하는데 시간이 조금 걸렸다. 각설하고 포스팅을 이어 가겠다. 일단 GitHub주소는 하단을 참고 하면된다. kazuhiro4949/PagingKit PagingKit provides customizable menu UI. .. [IOS] Label의 text에따라 유동적인 ScrollView 만들기 프로젝트에서 이용약관을 보여줘야 하는 VC가 필요했다. 대부분 이용약관 text는 상당히 길다. 어떻게 표현할지 고민하다 ScrollView를 사용했는데 ScollView의 레이아웃을 잡는 과정을 포스팅 하려한다. 일단 ScollView를 만들겠다. private let scrollView: UIScrollView = { let scrollView = UIScrollView() scrollView.isScrollEnabled = true scrollView.indicatorStyle = .black scrollView.showsVerticalScrollIndicator = true return scrollView }() Scroll 사용 여부를 결정하는 Bool 값인 isScrollEnabled 속성은 .. [IOS] AttributedString을 사용한 Label에 Image 속성 추가 라벨과 이미지를 같이 사용하여 구현해야 할 뷰가 있었고 그 부분을 포스팅 하려 한다. Attribute를 이용하여 진행 할껀데 물론 라벨 따로 이미지뷰 따로 레이아웃을 잡아 진행 할 수 있기도 하다. 이부분은 각자의 선택에 맡기겠다. 시작은 아주 간단하게 라벨을 하나 만들겠다. let label: UILabel = { let label = UILabel() label.text = "testtest" return label }() 이 라벨의 레이아웃을 잡아 준다면 이렇게 보일텐데 지금 해보려 하는건 attributedText를 활용한 구현이니깐 let attributedString = NSMutableAttributedString(string: "첫번째 문장") NSMutableAttributedStrin.. [Swift_Library] Legacy Library ( migrate ) 프로젝트에 필요한 라이브러리를 물색할때 개인적으로 나름 규정한 룰이 있다. 1. 일단 얼마나 최신화 되어 있는지 ( 지속적인 업데이트 이력이 있는지도 ) 2. 다른 경쟁? 라이브러리와의 퀄리티 비교 3. 간결한 코드 진행 이정도로 뽑을 수 있겠다. 오늘은 1번에 해당하는 조건에 많이 벗어난 라이브러리를 사용하다 겪은 에피소드를 얘기하려한다. 마땅한 라이브러리가 없어 어쩔수 없이 선택한 라이브러리의 브런치 커밋 이력이다... podfile에 install은 다행이도 이상 없었고 빌드를 했는데 Error 메세지가 보였다. 라이브러리의 업데이트가 이루어지지 않아서 아직도 3.0에 머무르고 있었다. File에 Workspace Settins를 클릭하고 나오는 Build System에서 Legacy Build S.. 이전 1 2 3 4 5 다음