일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 리펙터링
- map
- Protocol
- swiftUI
- 클린 코드
- uiscrollview
- swift documentation
- RxCocoa
- Xcode
- collectionview
- Refactoring
- 리팩토링
- 리펙토링
- 스위프트
- ios
- Human interface guide
- clean architecture
- SWIFT
- MVVM
- ribs
- uitableview
- UITextView
- Observable
- Clean Code
- UICollectionView
- combine
- rxswift
- HIG
- tableView
- 애니메이션
- Today
- Total
목록iOS 실전 (swift)/UI 커스텀(프로그래밍적 접근) (16)
김종권의 iOS 앱 개발 알아가기
*실습 : TabBarContoller를 custom하여, storyboard에서 클래스 지정으로 가져다 쓰기 1. 스토리보드 준비 2. 새로운 클래스 작성 후, storyboard의 Tab Bar Controller와 연결 - 연결 후 tabBar안보이게 설정(isHidden = true) 1 2 3 4 5 6 7 8 9 10 class CSTabBarController: UITabBarController { let csView = UIView() let tabItem01 = UIButton(type: .system) let tabItem02 = UIButton(type: .system) let tabItem03 = UIButton(type: .system) override func viewDidLoa..
- 특정 클래스를 상속받아서(UIButton, UILabel,,,) UI를 구현 - 완성된 커스텀 클래스는 객체를 생성하여 바로 사용 & storyboard에서 클래스 연결하여 사용 *커스텀 클래스에서 중요한 기본내용은 init개념 init개념 [swift] 13. 초기화(init, convenience init, required init, override init) let b = Boo() 원래의 의미는 "let b = Boo.init()" 1. init의 존재 이유 - 모든 저장 프로퍼티들은 초기화 되어야 함, init키워드는 이것을 도와줌 1 2 3 4 5 6 7 8 9 10 11 class Test{ var a:Int! // nil로 초.. ios-development.tistory.com 1. ..
* 텍스트필드영역과 버튼영역 사이에 커스텀 할 수 있음 -> UIViewController타입을 넣을 수 있음 -방법 : alert.setValue(뷰 컨트롤러 객체, forKey:"contentViewController") 1 2 3 4 5 6 7 8 9 // nil 삽입하면 위 공간 사라짐 let alert = UIAlertController(title: nil, message: nil, preferredStyle: .alert) (중략) let vc = UIViewController() vc.view.backgroundColor = .red alert.setValue(vc, forKey: "contentViewController") self.present(alert, animated: false)
1. TabBar Controller : UITabBar와 UITabItem으로 구성 * 탭 바에서의 접근은 모두 Controller통해 접근함 - tabBar : tabBarController.tabBar. (barTintColor) - item : tabBarController.tabBar.items ※ 네비게이션 컨트롤러는 다름 - bar에 접근 : navigationController -> navigationBar - item에 접근 : navigationItem( 종류 : titleView, leftBarButton, rightBarButton) 2. 탭바 커스텀 - storyboard 사용 + 프로그래밍적 접근 1) storyboard준비화면 2) 탭 바 생성 * SceneDelegate.sw..
*Navigation Controller를 프로그래밍 방식으로 구현하기 1. 기본적인 프로그래밍 방식 - ViewController에서, 프로그래밍 스타일로 만든 ResultViewController로 데이터 넘기는 예제 1) 첫 main.storyboard세팅 (오른쪽 화면은 ViewController클래스와 연결) 2) ResultViewController 프로그래밍방식으로 생성 - 주의할점 : 프로그래밍 방식으로 구현시, 루트뷰의 색상은 black이므로 white로 수정해야함 1 2 3 4 5 6 7 8 9 10 11 12 13 // ResultViewController.swift class ResultViewController: UIViewController { var pL: String! var..
* UIKit관련 객체 - TextField, Switch, Stepper, Label * 변수 준비 1 2 3 4 5 6 7 8 9 10 11 class ViewController: UIViewController { var tF: UITextField! var s: UISwitch! var stepper: UIStepper! var l: UILabel! override func viewDidLoad() { // 이곳에 각 속성 정의 } } 1) TextField 1 2 3 4 5 6 7 8 9 tF = UITextField() tF.frame= CGRect(x: 10, y: 50, width: self.view.frame.width, height: 200) tF.font = .systemFont(ofS..
1. 생성 - 객체 생성 1 2 let btn = UIButton(type: UIButtonType.system) 2. 위치 및 크기 속성 위치 및 크기에 관한 것은 CoreGraphics를 사용(UIKit에 있으므로 별도 추가 하지 않아도 가능) 1) 위치 (왼쪽상단이 원점) : CGPoint(x:,y:) 1 2 let location = CGPoint(x: 100, y: 100) 2) 크기 : CGSize(width:,hieght:) 3) 위치와 크기를 한 번에 설정 : CGRect(x:,y:,width:,height:) 1 let rect = CGRect(x: 100, y: 100, width: 150, height: 250) 3. frame과 bounds * 구체적인 개념은 frame과 bound..
https://ios-development.tistory.com/114 1. 기본 용어 1) View Hierachy - view들 사이의 계층 관계가 존재 - Superview : 뷰의 계층 구조상 다른 뷰를 포함(가장 뒤에 있는 뷰) - Subview : Superview에 포함된 뷰(가장 앞에 있는 뷰) 2) 뷰의 구성 - Root View(Contentes View) : 뷰 계층 구조 최상위에는 항상 하나의 뷰가 존재 3) Container View Controller (contents view controller가 아닌, 컨트롤러들의 연결관계를 도와주는 역할) - 자식 뷰 컨트롤러 : 컨테이너 뷰 컨트롤러의 제어하에 있는 뷰 컨트롤러 - 루트 뷰 컨트롤러 : 컨테이너 뷰 컨트롤러와 직접 연결된 ..