본문 바로가기

Swift 개발 이야기28

SnapKit 을 이용하여 Dynamic Height ScollView 를 만드는 법 import UIKit import SnapKit class ViewController: UIViewController { let scrollView = UIScrollView() let contentView = UIView() let view1 = UIView() let view2 = UIView() let view3 = UIView() override func viewDidLoad() { super.viewDidLoad() self.view.addSubview(scrollView) // 메인뷰에 scrollView.snp.makeConstraints { (make) in make.edges.equalToSuperview() // 스크롤뷰가 표현될 영역 } scrollView.addSubview(con.. 2019. 10. 10.
RxSwift로 여러가지 Custom TableView Cell 을 설정하기 RxSwift 는 TableView 를 쓰기 편하게 만들어두긴 했는데 하나의 테이블뷰에 하나의 셀만 설정하는 것에 약간 특화가 되어 있습니다. ListViewModel.data.bind(to: tableView.rx.items(cellIdentifier: "Cell")) { row, item, cell in //여기서 cell 의 값을 주는 방법으로 자주 씁니다 } 하지만 실무에서는 하나의 테이블뷰에 여러가지 커스텀뷰를 넣어야 하는 경우가 있는데요. 이때는 아래와 같이 쓰시면 됩니다. tableView.register(CustomRxTableViewCell.self, forCellReuseIdentifier: "Cell") tableView.register(UITableViewCell.self, forC.. 2019. 5. 28.
RxSwift를 활용하여 이전 뷰컨트롤러에 데이터 전송하기 번거로운 Delegate 를 사용하지 않고도 안전하게 이전 뷰컨트롤러로 데이터를 전송하는 법을 알아보도록 하겠읍니다. 먼저 데이터를 받을 테이블뷰컨트롤러를 생성하고 뿌려줄 데이터를 저장할 어레이를 만들어줍니다. let disposeBag = DisposeBag() let stringArray = Variable([]) let tableView = UITableView() 이후 스트링어레이와 테이블뷰를 바인딩해줍니다. stringArray.asObservable().bind(to: tableView.rx.items(cellIdentifier: "Cell", cellType: UITableViewCell.self)){ row, data, cell in cell.textLabel?.text = data }.d.. 2018. 4. 26.
RxSwift 로 간단하게 텍스트의 변화 감지하기 RxSwift 는 반응형 프로그래밍으로 비동기적인 변수의 변화를 손쉽게 다룰 수 있읍니다. 아래의 간단한 예시로 말씀드리겠읍니다. 먼저 변화를 감지할 인스턴스를 생성합니다.(기본적으로 RxSwift 와 RxCocoa 를 import 해주는 것을 잊지 맙시다) let rxText = Variable(nil) 텍스트를 입력할 텍스트필드도 만들어줍시다. let myTf = UITextfield() myTf 를 rxText 인스턴스의 변화를 관찰할 수 있는 드라이버로 지정해줍시다. myTf.rx.text.asDriver().drive(rxText).disposed(by:disposeBag) rxText 를 이제 관찰해봅시다. rxText.asObservable().debounce(1, scheduler:Main.. 2018. 3. 9.