일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- uiscrollview
- ios
- uitableview
- tableView
- Xcode
- UICollectionView
- rxswift
- 스위프트
- Observable
- 리팩토링
- 클린 코드
- 애니메이션
- UITextView
- swift documentation
- RxCocoa
- 리펙토링
- Protocol
- SWIFT
- swiftUI
- map
- ribs
- Refactoring
- combine
- Clean Code
- collectionview
- HIG
- Human interface guide
- clean architecture
- 리펙터링
- MVVM
- Today
- Total
목록ios (1095)
김종권의 iOS 앱 개발 알아가기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c1Hd2Z/btreJZTM3Bu/yNVtwpt9lWHkjThST5yFIK/img.png)
커스텀 NavigationController 아이디어 커스텀한 navigationBar와 Back 버튼 이미지를 새로 추가하여 사용 static func makeNavigationController(rootViewController:)로, 커스텀된 navigationController를 해당 클래스 내부에서 빌더를 통해 사용할 수 있도록 설정 커스텀 NavigationController 구현 back button에 사용될 아이콘 준비 저작권 없는 무료 아이콘 다운로드: https://fonts.google.com/icons?selected=Material+Icons&icon.query=arrow BaseNavigationController 클래스 정의 class BaseNavigationControlle..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b8pjf3/btreFTge2Vx/rDW4TebUj1Ut6iHDBsS2QK/img.png)
이미지 아이콘 준비 저작권 없는 아이콘 다운로드: icooon-mono.com/ 퀄리티 좋은 svg는 없고 png만 존재하며 os별로 다운 옵션 존재하는 사이트: https://fonts.google.com/icons?selected=Material+Icons&icon.query=arrow SVG(Scalable Vector Graphic)의 개념 사양 iOS 13+ xcode 12+ 2차원 벡터 그래픽을 표현하기 위한 XML 기반의 파일 형식 벡터 이미지는 특성상 확대를 해도 픽셀이 깨지지 않기 때문에 사용에 유용하며 파일의 크기가 작은 장점이 존재 보통 @3x.png 파일의 크기는 3k바이트 Xcode에서 SVG 파일 사용 방법 Single Scale 선택 후 사용 SVG vs PDF svg의 크기가..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bhhm51/btreBkKNhwW/8FswNESvy6C4rN2tkqFpH1/img.gif)
터치 영역 늘리는 아이디어 UIView에서 사용하고 있는 point(inside:with:)메소드를 override하여 touch영역 확대 point는 터치가 일어난 곳의 좌표이고, event는 gesture의 종류이며, true를 반환하면 point가 receiver의 bounds 내부에 속해있다고 판별 touch 영역 확대는 bounds값을 계산하는 insetBy(dx:dy:) 이용 dx, dy가 음수이면 bounds의 크기를 증가, dx, dy가 양수이면 bounds의 크기 감소 insetBy(dx:dy:) 자세하게 알아보기: viewDidAppear에서 bounds.insetBy(dx:dy:)로 구한 값으로 bounds재설정 테스트 override func viewDidAppear(_ animat..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mt4oS/btrerzopjZA/7znE710n0QjvLK7VON3WA0/img.png)
placeholder 적용 textView 초기화 text를 placeHolder 문자열, color를 placeHolder 색상으로 변경 delegate 설정 // ViewController.swift let textViewPlaceHolder = "텍스트를 입력하세요" lazy var textView: UITextView = { let view = UITextView() view.layer.borderWidth = 1.0 view.layer.borderColor = UIColor.lightGray.withAlphaComponent(0.7).cgColor view.textContainerInset = UIEdgeInsets(top: 16.0, left: 16.0, bottom: 16.0, right: ..
스위프트의 private(set) 키워드 private(set)을 쓰지 않고 외부에서 읽기만 가능하고 내부에서만 수정이 가능하도록 하는 코드 public class Data { private var _id: String public var id: String { get { return _id } set { return _id = id } } } private(set) 사용 public class Person { internal private(set) var id: String } internal은 생략해도 무방 읽기는 internal, 쓰기는 private으로 접근 제한이 정의된 프로퍼티 id public class Person { private(set) var id: String }
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dz3Aho/btreaQc1TFu/gTYGLKMfHeDgzmGk0HLt5K/img.gif)
keyboard 바로 위에 버튼 표출 구현 방법 TextField, TextView안에 내장된 inputAccessoryView 프로퍼티에 UIView 대입 UIView.addSubview로 Button 추가 textField나 TextView의 receiver가 becomeFirstResponse가 된 경우, 키보드가 표출할떄 키보드 위의 영역 nil이 디폴트값이고 따로 View를 추가하여 대입 필요 inputAccessoryView에 대입할 View 정의 lazy var accessoryView: UIView = { return UIView(frame: CGRect(x: 0.0, y: 0.0, width: UIScreen.main.bounds.width, height: 72.0)) }() textFi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/P8kOA/btred0L28eg/YkdKQwE3jgRpihrauzO4eK/img.gif)
알아야 하는 기본 개념 Range NSRange 문자열 처리 메소드 .trimmingCharacters(In: .whitespacesAndNewlines), .replaceingCharacters(in:with:) Range half-open의 범위를 나타내고 있는 구조체 Range는 lowerBound, upperBound프로퍼티가 존재 "1..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cgYHw9/btrd0YorXVn/IVp6kWIJjr4nt5aTEELQZ0/img.png)
ColorSet 생성 방법 Assets.xcassets 파일 오픈 > New Color Set Any Appearance나 Dark Appearance 클릭 > 오른쪽에 Color Set 창 확인 Appearances 설정: 간략히 하기 위해 Dark mode 사용하지 않는 None 옵션 선택 RBG로 사용하기 위한 설정: Color > Input Method > 8-bit (0-255) 선택 이름도 변경 "pirimary" 여러개 생성 사용하는 쪽에서 편리하게 사용 방법 extension을 사용하여 static computed property로 정의 extension UIColor { /// Primary ColorSet /// /// Primary color - (100, 149, 237, 100%)..