일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tableView
- uitableview
- RxCocoa
- ribs
- clean architecture
- 리펙토링
- Observable
- 스위프트
- SWIFT
- Protocol
- UICollectionView
- swift documentation
- UITextView
- MVVM
- map
- 애니메이션
- HIG
- 리펙터링
- Clean Code
- combine
- uiscrollview
- 리팩토링
- rxswift
- collectionview
- swiftUI
- Human interface guide
- Xcode
- Refactoring
- 클린 코드
- ios
- Today
- Total
목록분류 전체보기 (1617)
김종권의 iOS 앱 개발 알아가기
*사이드바의 구현 원리 : 사이드 바로 해당되는 Rear View가 앞에 나와있는 Front VIew밑에 존재, 사이드 바를 부르면 Front View를 오른쪽으로 이동시키면 밑에 있던 Rear View가 등장(눈으로 볼 땐 사이드 바가 나오는 것으로 보임) - 내부적으로 self.view.bringSubviewToFront(View) 이게 호출하여 구현 *SWRevealViewController라이브러리를 이용하여 사이드바 구현(가장 많이 사용하는 방법) 1. 라이브러리 및 기본 세팅 1) 라이브러리 다운 John-Lluch/SWRevealViewController A UIViewController subclass for presenting side view controllers inspired on ..
* 형태 - UIControl을 상속 받아서, 그곳에 UIButton 두 개와, UILabel하나 추가 - (UIControl과 UIView 둘 중 하나를 상속 받아도 가능하지만 UIControl을 상속받으면 해당 객체에서 이벤트 발생하라고 명시해 줄 수 있음 , self.sendActions(for:)이용 UIControl과 UIView클래스의 상속구조 [iOS - UI Custom] 1. UI 커스터마이징의 원리 1. 기본 용어 1) View Hierachy - view들 사이의 계층 관계가 존재 - Superview : 뷰의 계층 구조상 다른 뷰를 포함(가장 뒤에 있는 뷰) - Subview : Superview에 포함된 뷰(가장 앞에 있는 뷰) 2) 뷰의 구성 - Ro.. ios-developme..
1. 커스텀 클래스가 storyboard에서도 미리 보기가 가능하게끔 하는 것 - @IBDesignable을 커스텀 클래스 위에 적용 2. 커스텀 클래스의 속성을 storyboard에서도 선택 가능하게끔 하는 것 - @IBInspectable을 프로퍼티 위에 작성
접근 제한자 헝용 범위 private : 같은 클래스 fileprivate : 같은 소스 파일(.swift) internal : 같은 모듈(framework) or 같은 프로젝트 public : 모듈 외부까지 가능 open : 모듈 외부, 상속 및 override가능(확장 가능) 선언하지 않을시 디폴트는 internal 접근 제한자 * 더 구체적인 설명 참고: https://ios-development.tistory.com/644?category=989689 [iOS - swift 공식 문서] 26. Access Control (접근제한) Access Control 다른 소스 파일 또는 모듈의 코드에서 코드 부분에 대한 엑세스를 제한 코드의 구현 세부 정보를 숨기고 해당 코드에 엑세스하고 사용할 수 있는..
*실습 : 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..
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로 초기화 var b:Int? // nil로 초기화 var c: Int // init으로 초기화 var d: Int // error init(tmp: Int){ self.c = tmp } } (d변수가 초기화 되지 않아서 error) 2. 초기화의 종류 1) 초기화 메소드의 델리게이션: super.init() (연쇄적인 초기화) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 class A{ va..
- 특정 클래스를 상속받아서(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)