Notice
Recent Posts
Recent Comments
Link
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
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
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))
        }
    }
}

rx์ ์šฉ

 

์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ SnapKit + RxSwift ์ ์šฉ์ด์•ผ

์—ฌ๊ธฐ์—๋Š” ํ…Œ์ด๋ธ” ๋ทฐ๋งŒ ๊ตฌ์„ฑํ•œ ๊ฒƒ์ด๊ณ  DataSource๋Š” Delegate๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌ์„ฑํ•˜๋Š” ๊ฑด SnapKit ์นดํ…Œ๊ณ ๋ฆฌ์— ์œ„์น˜ํ•˜๊ธฐ์—๋Š” ์• ๋งคํ•ด์„œ RxSwift์ชฝ์œผ๋กœ ์ด๋™ํ•ด์„œ ์ž‘์„ฑํ•˜๊ฒŒ ํ•  ์ƒ๊ฐ์ด์•ผ.

 

 

โœ… ์—ฌ๊ธฐ์„œ ๋‹ค์Œ๋‹จ๊ณ„๋Š” 

2021.08.19 - [iOS/RxSwift] - iOS RxSwift 06 | RxDataSources ๊ธฐ์ดˆ

 

iOS RxSwift 06 | RxDataSources ๊ธฐ์ดˆ

โœ… ์—ฌ๊ธฐ ํฌ์ŠคํŒ…์€ ์ด์ „ ํฌ์ŠคํŒ…์—์„œ SnapKit์„ ์ ์šฉํ•œ ํ›„์— ์—ฌ๊ธฐ๋กœ ๋„˜์–ด์™”๋‹ค. ์ด๊ฑฐ ์ •๋ง ๊ทนํ•œ์œผ๋กœ ์–ด๋ ต๋‹ค ใ… ใ…  ... ๋ญ”๊ฐ€ ์•Œ๋“ฏ๋ง๋“ฏ ํ•˜๋ฉด์„œ๋„ ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ๊ฐ€. ๊ณต์‹๋ฌธ์„œ๋ฅผ ๋šœ๋“œ๋ ค๋ณด๋Š” ์ค‘์ธ๋ฐ ์™œ์ด๋ ‡๊ฒŒ

rldd.tistory.com

 

Comments