일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Human interface guide
- map
- rxswift
- SWIFT
- UICollectionView
- RxCocoa
- swiftUI
- HIG
- MVVM
- Xcode
- Refactoring
- uitableview
- collectionview
- Clean Code
- ios
- swift documentation
- 스위프트
- 클린 코드
- 리팩토링
- Protocol
- 애니메이션
- ribs
- Observable
- uiscrollview
- UITextView
- clean architecture
- combine
- tableView
- 리펙토링
- 리펙터링
- Today
- Total
목록uitableview (23)
김종권의 iOS 앱 개발 알아가기
intrinsicContentSize intrinsicContentSize UILabel과 같은 UI에는 본질적인 크기와, 프레임 크기가 존재하는데 이 때 본질적인 크기를 의미 intrinsicContentSize를 가지고 있는 UI와 가지고 있지 않는것들로 분류 ex) UILabel은 intrinsicContentSize가 자동으로 불리는 형태 3초후에 text를 입력하고, 화면에 잘리지 않고 길이만큼 content가 표시되는지 테스트 override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) DispatchQueue.main.asyncAfter(deadline: .now() + 3) { self.nameLabel.text..
UITableViewCell, UICollectionViewCell에서의 highlighted 애니메이션 가장 쉽게 접근하기위해서 Cell에서 highlighted가 트리거 될 때, cell 속성에 배경색이나 이미지를 바꾸는 등을 할 수 있지만 cell은 UIButton과 다르게 highlighted의 값이 true, false가 빠르게 바뀌어, 적용이 안되는 것처럼 보이는 문제가 존재 아래처럼 셀을 탭할 때 highlighted 애니메이션이 안들어간것처럼 보이는 현상 존재 (길게 누르고 있어야 highlighted 확인 가능) // in MyTableViewCell override func setHighlighted(_ highlighted: Bool, animated: Bool) { super.set..
Section을 사용하는 기준 분류 - TableView / Section / Cell -> Cell들은 서로 연관되어 있는지? 연관이 적으면 Section으로 나누기 -> Section들은 표현하려는 방향이 같은지? 표현하려는 방향이 같으면 하나의 TableView에 표현 Section을 한 개만 사용 vs Section을 여러개 사용 아래처럼 아이폰에 설치되어 있는 Setting앱을 보면, 하나의 TableView안에 Section이 여러개로 나누어져 있는 패턴 Section의 개념? Section은 하나의 TableView 안에서 데이터의 성격을 분류할 때 사용하는 것 Cell은 같은것을 쓸지라도 성격에 따라 Section을 나누어서 사용할 것 (Cell만 적용하다가 Cell끼리의 성격이 달라진다 ..
UITableView에서 스크롤 이동 tableView.scrollToRow(at:at:animated:) 메서드 사용 UI적인 접근이 필요하므로 main 스레드에서 접근 @IBAction func didTapButton(_ sender: Any) { DispatchQueue.main.async { [weak self] in self?.tableView.scrollToRow(at: IndexPath(row: 77, section: 0), at: .bottom, animated: true) } } CollectionView에서 스크롤 이동 collectionView.scrollToItem(at:at:animated:) 메서드 이용 main 스레드로 접근 @objc func didTapMoveScrollB..
1. 이미지 캐싱, 이미지 효율적으로 로드 방법, 스크롤에 따라 이미지 로드(tableView, collectionView): scrollViewDidScroll, prefetch 2. 이미지 캐싱, 이미지 효율적으로 로드 방법(tableView, collectionView): async + NSCache 아이디어 스크롤이 느려지고, 앱이 꺼지고 이미지들이 사용자에게 보여질 때 느려질 수 있으므로 캐시를 사용 비동기적으로 이미지를 저장하고 cache를 사용 어떻게? request(page:1) API 호출 > 10개의 이미지 url 획득 10개의 이미지 url만 cell의 model에 먼저 저장 (image는 따로 호출하여 반영) image는 최초 10개만 일단 로드하고, 나머지는 아래에서 나오는 내용인..
구조 main과 sub항목으로 나눔 main항목 하나는 하나의 section으로 구성 (하위들의 데이터: main, sub1, sub2, ...) (main1, sub1, sub2) 를 하나의 section으로 두면 인터렉션 관리에 용이하기 때문에 section으로 구성 main선택 -> 하위 sub모두 체크하기 쉬움 인터렉션 "위 내용에 모두 동의합니다" 선택: 모든 버튼 체크 / 해제 "필수"항목 누른 경우, 동의하기 버튼 활성화 모든 항목 선택 -> 위 내용에 모두 동의합니다 활성화 sub항목 존재하는 main항목 선택 -> sub 항목 모두 체크 sub항목이 존재하는 항목중에 sub항목 모두 체크 -> main항목 체크 Custom cell Hugging, compression값 설정: (필수)의..
방법: CALayer를 가지고 테이블 뷰 색깔로 그려주게 되면, separator가 가려지게끔 하는 원리 CALayer를 이용하여 UIView의 하단에 줄을 긋는 함수 정의 public extension UIView { func addBottomBorderWithColor(color: UIColor) { let border = CALayer() border.backgroundColor = color.cgColor border.frame = CGRect(x: 0, y: self.frame.size.height, width: self.frame.size.width, height: 1) self.layer.addSublayer(border) } func addAboveTheBottomBorderWithColo..