일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스위프트
- SWIFT
- Refactoring
- ios
- 리펙토링
- tableView
- swiftUI
- 애니메이션
- uiscrollview
- swift documentation
- Clean Code
- 리펙터링
- HIG
- 리팩토링
- Human interface guide
- RxCocoa
- Protocol
- map
- rxswift
- UICollectionView
- MVVM
- clean architecture
- 클린 코드
- uitableview
- collectionview
- Xcode
- combine
- UITextView
- ribs
- Observable
- Today
- Total
목록분류 전체보기 (1645)
김종권의 iOS 앱 개발 알아가기

첫 번째 방법 - User Interaction Enabled를 비활성화 button의 User Interaction Enabled를 비활성화하면 해결 (뒤에있는 View의 gesture에 의존) Rx의 Observable.merge이용 Observable.merge( sampleView.rx.tapGesture().map{ _ in }.asObservable(), btn.rx.tap.asObservable() ).bind { _ in self.count += 1 self.lbl.text = String(describing: self.count) }.disposed(by: bag)

Code로 접근 방법 attributedPlaceholder 속성 사용 extension UITextField { func setPlaceholder(color: UIColor) { guard let string = self.placeholder else { return } attributedPlaceholder = NSAttributedString(string: string, attributes: [.foregroundColor: color]) } } 색깔 변경 textField.setPlaceholder(color: .blue) xib에서 접근 방법 User Defined Runtime Attributes에서 속성 추가: placeholderLabel.textColor 결과

commit 삭제 방법 일반적으로 사용하는 것은 revert이지만 revert는 커밋 정보가 남기 때문에 (과거의 커밋 + 커밋이 수정되었다는 최신 커밋) 다른 방법 사용 rebase interactive로 second 커밋으로 HEAD이동 -> second를 revert -> revert 내용 커밋과 second커밋 두개를 squash하여 내용 삭제 * 가끔 git rebase --continue를 하면 commit안의 수정 내용은 없지만, 커밋포인트가 살아있는 버그 존재 -> 직전 commit point를 대상으로 rebase interactive로 Head 이동 후 continue rebase를 선택하면 제거
모든 TimeZone 확인 for timeZone in TimeZone.knownTimeZoneIdentifiers { print(timeZone) } 디바이스 기준 TimeZone 값 확인 TimeZone.current.identifier // `Asia/Seoul` TimeZone을 활용하여 해당 나라의 시간 구하기 func time() { let date = DateFormatter() date.locale = Locale(identifier: Locale.current.identifier) date.timeZone = TimeZone(identifier: TimeZone.current.identifier) date.dateFormat = "HH:mm" print(date.string(from: D..
KVO(Key-Value Observing) 특정 키의 값의 변화를 감지하기 위한 기능 `변수`에 코드를 붙여 변수가 변경될 때마다 코드가 실행되도록 하는 방법 Property Observers(willSet, didSet)과 유사하지만 KVO는 타입 정의 밖에서 observe를 추가한다는 점의 차이가 존재 (Objective-c 런타임에 의존하기 있기 때문) 사용할 땐 NSObject를 상속받기 위해 @objc dynamic를 반드시 붙여줘야 가능 (dynamic 키워드: Objsective-c 문법의 하나로, 특정 method의 구현을 objective-런타임에서 dynamic dispatch를 활성화 Dynamic dispatch: 키 패스(KeyPath = \.) 이름을 이용해 프로퍼티의 주소를 ..
절차 지향 프로그래밍 (Procedural programming) 주로 goto 문장이 주를 이루는 프로그래밍 현재의 프로그래밍은 모두 `구조적 프로그래밍` 자바의 경우 break, goto문이 있지만 이 제어흐름을 아무 제약 없이 직접 전환될 수 있던 과거의 포트란과 코볼같은 언어와는 달리 goto문을 함수 안으로 한정시키는게 대부분 구조적 프로그래밍 (structured programming) 구조적 프로그래밍의 탄생: 수학적으로 접근 (순차 구문-열거법, 분기-열거법, 반복-귀납법) 기능적 분해: 구조적 프로그래밍을 통해 모듈을 증명 가능한 떠 작은 단위로 재귀적으로 분해가 가능 -> 기능적으로 분해 가능하다는 의미 문제 접근방법: 큰 문제 -> 고수즌의 기능들로 분해 -> 이들 각 기능은 저수준의..

UIControl 이벤트의 종류 개념 * 출처: daheenallwhite.github.io/ios/2019/07/24/Target-Action/ UIControl.Event touchDown 컨트롤을 터치했을 때 발생하는 이벤트 touchDownRepeat 컨트롤을 연속 터치 할 때 발생하는 이벤트 touchDragInside 컨트롤 범위 내에서 터치한 영역을 드래그 할 때 발생하는 이벤트 touchDragOutside 터치 영역이 컨트롤의 바깥쪽에서 드래그 할 때 발생하는 이벤트 touchDragEnter 터치 영역이 컨트롤의 일정 영역 바깥쪽으로 나갔다가 다시 들어왔을 때 발생하는 이벤트 touchDragExit 터치 영역이 컨트롤의 일정 영역 바깥쪽으로 나갔을 때 발생하는 이벤트 touchUpIn..
구조적 프로그래밍 (structured programming) `구조적 프로그래밍`이란 제어흐름(if/then/else, do/while/until)의 직접적인 전환에 대해 규칙을 부과하는 것 객체 지향 프로그래밍 (object-oriented programming) `객체 지향 프로그래밍`이란 제어흐름의 간접적인 전환에 대해 규칙을 부과하는 것 구조적 프로그래밍보다 2년 먼저 등장 ALGOL언어에서 stack의 frame을 heap으로 옮기면 함수 호출이 반환된 이후에도 함수에서 선언된 지역 변수가 오랫동안 유지될 수 있음을 발견 -> 이러한 함수가 클래스의 '생성자'로 지정 / 지역 변수는 인스턴스 변수로 / 중첩 함수는 메서드로 / 함수 포인터를 특정 규칙에 따라 사용하는 과정을 통해 다형성 등장 ..