일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 클린 코드
- Xcode
- UITextView
- Clean Code
- uiscrollview
- swift documentation
- SWIFT
- 애니메이션
- rxswift
- map
- 리팩토링
- tableView
- Observable
- ribs
- combine
- ios
- MVVM
- RxCocoa
- 리펙토링
- uitableview
- Human interface guide
- 리펙터링
- swiftUI
- HIG
- Refactoring
- clean architecture
- Protocol
- 스위프트
- UICollectionView
- collectionview
- Today
- Total
목록custom view (8)
김종권의 iOS 앱 개발 알아가기
커스텀 뷰 만들기간단한 커스텀 뷰의 경우는 단순히 데이터만 받아서 그 데이터에 맞게끔 뷰가 그려지지만, 데이터와 특정 뷰를 주입하여 그 뷰도 커스텀 뷰의 하나가 되도록 설계도 가능뷰를 주입받는 형태로 구현해야하는데 좋은 방법은? 아래에서 계속뷰를 주입받는 형태로 구현하는 테크닉ex) 예제로 사용할 뷰: 상단에 header 타이틀 형태가 있고 하단에는 배열로 넣어준 뷰들이 보여지는 뷰struct ContentView: View { var body: some View { CustomView(title: "상단 타이틀", items: [1,2,3]) { item in Text("item: \(item)") } }}1) 사용하는 쪽에서 만들 뷰에 필요한 데..
기초 개념) stored property와 computed property 메모리 관점 stored property - 별도의 메모리 공간 지정 o computed property - 별도의 메모리 공간 지정 x 사용 관점 stored property - 값을 저장 computed property - 접근하는 시점에 stored property들을 가지고 계산하여 반환 stored property를 사용할때 주의할 점 stored property를 사용하다보면 가장 큰 문제가, 상태 관리를 두 곳 이상에서 하는 경우가 발생 상태 관리를 두 곳 이상에서 하다보면 데이터 관리가 맞지 않아 코드 복잡도가 올라가는 현상이 발생 ex) 커스텀 뷰를 만드는데, ButtonWithImageView안에 또 다른 MyB..
* Storyboard로 UI 구현 기본기 목차 참고 xib, nib 란? XIB(Xcode Interface Builder), NIB(Next Interface Builder) XIB는 Xcode에서 제공하는 시각적 에디터를 의미하며 View라는 파일을 선택하여 만들면 .xib 확장자명을 가지는 파일이 생성 (xml 형태) NIB는 XIB가 컴파일되어 메모리에 로드할 때 사용되는 파일을 NIB라고 명칭 주의 - storyboard는 .xib가 아님 storyboard 파일이 컴파일되면 .storyboardc로 변환 xib가 빌드되면 nib로 변경되고 이 파일은 App Bundle 디렉토리에 저장되어 코드 베이스에서 이 파일을 사용할 땐 bundle에서 로드하여 사용 xib 커스텀 뷰 만드는 방법 vie..
Custom View (xib) 기본 개념 custom view 인스턴스를 사용하기까지의 개념 이해 xib -> nib -> instance (아래 구현부에서 계속 상세히 설명) instance는 UIView를 상속한 커스텀 뷰를 만들때 필요하고, UITableViewCell과 같은 커스텀 셀에서는 불필요 > tableView.register(nib, forCellReuseIdentifier:)할 때 nib파일을 넣어주므로 커스텀 셀에서는 불필요 Custom Cell 준비 Cocoa Touch Class로 UITableViewCell 생성 cf) cell이 아닌 일반적인 view를 만들때는 .swift파일과 .xib파일 생성 주의) UITableViewCell을 아래처럼 swift, views 파일 따로..
CustomView를 만들 때 UIStackView를 사용하면 좋은점 StackView가 기본적으로 가지고 있는 align 속성 사용 가능 (가운데 정렬도 alignment = .center로 쉽게 레이아웃 설정) 스택뷰에 `addArrangedSubview()`를 통해 view들을 넣어놓고 view들을 hidden시켜도, 자동으로 정렬되기 때문에 stack안에 들어가있는 view들의 레이아웃을 신경쓰지 않아도 되는 장점이 존재 UIStackView를 상속받아서 구현할때 알아야 하는 점 StackView의 속성들의 값을 모두 기억 stackView.spacing = 0 stackView.axis = .horizontal stackView.alignment = .fill (.leading, .trailin..
GradientView UIView를 상속받아서 구현 layer.addSublayer로 CAGradientLayer 객체를 추가한 형태 특정 layout 또는 특정 component위에 gradientView 객체를 올려서 사용 isUserInteractionEnabled = false인 상태로 터치 이벤트는 responder chain을 통해 sublayer에 넘기도록 설정 GradientView 구현 BaseView 정의 class BaseView: UIView { override init(frame: CGRect) { super.init(frame: frame) configure() } @available(*, unavailable) required init?(coder: NSCoder) { fa..
* custom view (xib) 참고: ios-development.tistory.com/391 custom view 생성 접근 stored property를 사용하며 클로저를 통해 개별 컴포넌트의 속성과 translatesAutoresizingMaskIntoConstraints = false로 설정 init(frame:)과 init(coder:)에서 각각 setupLayout()을 호출하여, 개별 컴포넌트들의 레이아웃 결정 - xib를 이용하면 이부분에서 nib를 이용하여 view를 새로 생성하는 과정이 있지만 코드로만 할 경우 필요 x custom view 생성 class SampleView: UIView { // component 속성 정의 // init // setupLayout } 개별 컴포..
.xib파일과 .swift파일 생성 // // MyView.swift // TestSwfit // // Created by 김종권 on 2020/11/01. // Copyright © 2020 jongkwon kim. All rights reserved. // import Foundation import UIKit @IBDesignable class MyView: UIView { } .xib파일에서 UI기본 설정 (초기화면) FIle's Owner에 클래스 정의 Safe Area 체크 해제 Size를 Freeform으로 설정 드래그하여 크기 조절 후 디자인 커스텀 (하단의 검은색 bar는 다른 파일 클릭한 다음 다시 이 파일 클릭하면 사라짐) MyView.swift 코드 작성 xib, nib 파일 개념 ..