์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
Tags
- MVVM
- swift
- reactorkit
- tableView
- node.js
- UIKit
- visionOS
- Swfit
- ๋ฐฑ์ค
- designpattern
- Flutter
- CollectionView
- XCTest
- combine
- BOJ
- TCA
- arkit
- SwiftUI
- SnapKit
- raywenderlich
- ํ๋ก๊ทธ๋๋จธ์ค
- Kuring
- ํจ์คํธ์บ ํผ์ค
- Lv2
- Xcode
- RxSwift
- BFS
- rxcocoa
- ios
- realm
Archives
- Today
- Total
lgvv98
iOS SnapKit 05 | iOS tableView๋ฅผ ์ฝ๋๋ก ๊ตฌ์ฑํ๋ ๋ฒ 03 ๋ณธ๋ฌธ
โ ๏ธ deprecated โ ๏ธ/iOS Third Party
iOS SnapKit 05 | iOS tableView๋ฅผ ์ฝ๋๋ก ๊ตฌ์ฑํ๋ ๋ฒ 03
๐ฅ ์บ๋ฟ๋งจ 2021. 8. 19. 14:37โ ์ด๋ฒ ์๊ฐ์๋ RxSwift๋ฅผ ์ ์ฉํ์ฌ ์ฝ๋๋ฅผ ์กฐ๊ธ ๋ ์์ ํด๋ณด์
์ฝ๋๋ก ํ ์ด๋ธ ๋ทฐ๋ฅผ ๊ตฌ์ฑํ๋๊ฒ ์ฒ์์ด๋ค๋ณด๋ ๊ณ์ ๋์ด์ง๋ ๊ธฐ๋ถ์ด์ง๋ง ๊พธ์คํ ๋์๊ฐ๋ณด์!
//
// ViewController05.swift
// SnapKit_practice
//
// Created by Hamlit Jason on 2021/08/19.
//
import UIKit
import SnapKit
import RxSwift
import RxCocoa
class ViewController05Cell : UITableViewCell {
static let identifier = "ViewController05Cell"
let img : UIImageView = { // ์ด๋ฏธ์ง ์์ฑ
let imgView = UIImageView()
imgView.image = UIImage(named: "icon")
imgView.translatesAutoresizingMaskIntoConstraints = false
return imgView
}()
let label : UILabel = {
let label = UILabel()
label.text = "์์ด์์ด"
label.textColor = UIColor.gray
label.translatesAutoresizingMaskIntoConstraints = false
return label
}()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
addContentView()
autoLayout()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func addContentView() {
contentView.addSubview(img)
contentView.addSubview(label)
}
private func autoLayout() {
img.snp.makeConstraints {
$0.leading.top.equalTo(5)
$0.size.width.height.equalTo(100)
}
label.snp.makeConstraints {
$0.leading.equalTo(img.snp.trailing).offset(5)
$0.top.equalTo(5)
$0.trailing.equalTo(-5)
}
}
}
class ViewController05 : UIViewController {
let data = Observable<[String]>.just(["first","second","third",])
private let tableView : UITableView = { // ํ
์ด๋ธ ๋ทฐ ์์ฑ
let tableView = UITableView()
tableView.translatesAutoresizingMaskIntoConstraints = false
tableView.register(ViewController05Cell.self, forCellReuseIdentifier: ViewController05Cell.identifier)
return tableView
}()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .systemTeal
configure()
addSubView()
autoLayout()
data.bind(to: tableView.rx.items(cellIdentifier: ViewController05Cell.identifier, cellType: ViewController05Cell.self)) {
index, item, cell in
cell.img.image = UIImage(systemName: "ticket")
cell.label.text = "view 5 item \(index)"
}
}
}
extension ViewController05 {
private func configure() {
tableView.rowHeight = 100
}
private func addSubView() {
view.addSubview(tableView)
}
private func autoLayout() {
tableView.snp.makeConstraints {
$0.edges.equalTo(view.safeAreaLayoutGuide)
.inset(UIEdgeInsets(top: 0, left: 0, bottom: 200, right: 0))
}
}
}
์ฌ๊ธฐ๊น์ง๊ฐ SnapKit + RxSwift ์ ์ฉ์ด์ผ
์ฌ๊ธฐ์๋ ํ ์ด๋ธ ๋ทฐ๋ง ๊ตฌ์ฑํ ๊ฒ์ด๊ณ DataSource๋ Delegate๋ฅผ ์ด์ฉํด์ ๊ตฌ์ฑํ๋ ๊ฑด SnapKit ์นดํ ๊ณ ๋ฆฌ์ ์์นํ๊ธฐ์๋ ์ ๋งคํด์ RxSwift์ชฝ์ผ๋ก ์ด๋ํด์ ์์ฑํ๊ฒ ํ ์๊ฐ์ด์ผ.
โ ์ฌ๊ธฐ์ ๋ค์๋จ๊ณ๋
2021.08.19 - [iOS/RxSwift] - iOS RxSwift 06 | RxDataSources ๊ธฐ์ด
'โ ๏ธ deprecated โ ๏ธ > iOS Third Party' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
iOS Snapkit 09 | CollectionView ์ฝ๋๋ก ๊ตฌ์ฑํ๋ ๋ฒ 02 (0) | 2021.08.22 |
---|---|
iOS Snapkit 08 | CollectionView ์ฝ๋๋ก ๊ตฌ์ฑํ๋ ๋ฒ 01 (0) | 2021.08.22 |
iOS SnapKit 04 | iOS tableView๋ฅผ ์ฝ๋๋ก ๊ตฌ์ฑํ๋ ๋ฒ 02 (0) | 2021.08.19 |
iOS SnapKit 03 | iOS tableView๋ฅผ ์ฝ๋๋ก ๊ตฌ์ฑํ๋ ๋ฒ 01 (0) | 2021.08.19 |
iOS SnapKit 02 | Then ๋ผ์ด๋ธ๋ฌ๋ฆฌ (0) | 2021.08.18 |
Comments