일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- uitableview
- HIG
- swiftUI
- Clean Code
- clean architecture
- 애니메이션
- 리펙토링
- collectionview
- Observable
- RxCocoa
- 클린 코드
- 리펙터링
- UITextView
- Xcode
- swift documentation
- tableView
- 스위프트
- Refactoring
- UICollectionView
- ios
- Protocol
- combine
- SWIFT
- MVVM
- Human interface guide
- rxswift
- ribs
- 리팩토링
- map
- uiscrollview
- Today
- Total
목록UIKit (6)
김종권의 iOS 앱 개발 알아가기
UIButton.Configuration 개념 iOS 15+ 버튼들을 유형별로 일관성 있는 방식으로 손쉽게 사용할 수 있게하기 위함 UIButton.Configuration 사용 방법 UIButton.Configuration 객체를 만들고, 이 객체로 UIButton을 초기화 하는 방식 var config = UIButton.Configuration.plain() config.title = "\(i) button " + "(" + names[i] + ")" config.subtitle = "subtitle" let button = UIButton(configuration: config) 컴포넌트화 할 때, Configuration과 UI 자체를 코드로 분리하여 사용하는쪽에서 일관성있고 사용하기 편리하게 ..
스크롤 구분 방법 스크롤을 정교하게 컨트롤하다보면 사용자가 드래그하여 스크롤이 시작되었는지, setContentOffset(_:animated:)로 스크롤을 지정했는지 구분이 필요 ex) UIScrollView에서 스크롤 될 때마다 특정 처리를 하고싶은 경우 사용하는 didScroll 델리게이트에서 setContentOffset과 직접 드래그 했을때 구분하고 싶은 경우? extension ViewController: UITableViewDelegate { func scrollViewDidScroll(_ scrollView: UIScrollView) { print(scrollView.contentOffset) label.text = "\(scrollView.contentOffset)" } } 사용자가 드래..
Static Framework 개념 의미 앱의 실행 파일(excecutable)에 바이너리 파일이 포함되는 형식 (컴파일 타임에 로드되는 방식) 단점 앱의 사이즈 증가 모듈화 시 static 프레임워크를 의존하게되면 복사가 되므로 여러곳에서 의존할 경우 코드 중복 발생하여 의존성 관리에 더욱 주의해야하는 점이 존재 장점 dynamic framework보다 빠른 속도 Dynamic Framework 개념 의미 앱의 실행 파일(excecutable)에 포함되지 않고, 런타임 시 링크되어 앱이 실행되거나 필요할때 프레임워크 코드가 메모리에 로드되는 방식 단점 앱의 바이너리 파일에 포함되어 있지 않고, 링크하여 사용하므로 static framework에 비해서 느린 속도 장점 static framework에 비..
1. Sticky Header 구현 - 스크롤 시 상단 해더 숨기는 방법 2. Sticky Header 구현 - 스크롤 시 상단에 뷰 붙이는 방법 구현 아이디어 sticky할 뷰와 동일한 형태 뷰 준비 + 숨김 상태로 초기화 sticky 뷰는 scroll 안에 넣지 않고 맨 상단에 보이도록 scrollView보다 위에 있도록 addSubview scrollView의 top은 topView의 하단에 붙이기 (topView의 하단에 sticky도 붙일것) sticky 뷰는 topView하단에 붙이기 + stikcy의 높이는 sticky할 뷰의 높이와 동일하게 설정 스크롤 뷰의 델리게이트 메소드인 scrollViewDidScroll에서 stikcy 타이밍을 계산하여 stikcyHeaderView를 hide/s..
View와 Layer private let someView: UIView = { let view = UIView() view.backgroundColor = .systemBlue view.layer.shadowOffset = CGSize(width: 0, height: 10) view.layer.shadowColor = UIColor.black.cgColor view.layer.shadowOpacity = 0.3 view.layer.cornerRadius = 60 view.layer.borderWidth = 3 view.layer.borderColor = UIColor.green.cgColor view.translatesAutoresizingMaskIntoConstraints = false return ..
UIKit에서 기존에 사용하던 preview @IBINspectrable, @IBDesignable 추가하여, storyboard에서 수동으로 확인 -> swiftUI의 preview 기능을 사용할경우 UIKit 앱의 코드를 한줄도 바꾸지 않고 preview 기능 사용 가능 Preview사용 조건 Xcode 11 이상 macOS Catalina 이상 iOS 13+ Preview 사용 원리 dynamic replacement 기능 사용: Xcode에서 컴파일 없이 작성하고 있는 코드의 미리보기를 실시간으로 확인 가능 Preview - View 미리보기 Preview를 띄울 임의의 View 작성 import UIKit class MyYellowButton: UIButton { override init(fra..