//
// ViewController.swift
// LeanRxSwift
//
// Created by maochengfang on 2021/4/27.
//
import UIKit
import RxSwift
import RxCocoa
import Foundation
struct Music {
let name: String;
let singer:String;
init(name:String,singer:String) {
self.name = name
self.singer = singer
}
}
extension Music : CustomStringConvertible{
var description: String {
return "name \(name) singer \(singer)"
}
}
struct MusicDataModel {
let data = Observable.just([
Music(name: "光年之外", singer: "摩登兄弟"),
Music(name: "光年之外1", singer: "摩登兄弟1"),
Music(name: "光年之外2", singer: "摩登兄弟2"),
Music(name: "光年之外3", singer: "摩登兄弟3"),
Music(name: "光年之外4", singer: "摩登兄弟4"),
Music(name: "光年之外5", singer: "摩登兄弟5"),
])
}
class ViewController: UIViewController {
let musicDataModel = MusicDataModel()
// var tableView: UITableView!
var label : UILabel!
let cellID = "testCellID"
let disposeBag = DisposeBag()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.label = UILabel(frame: CGRect(x: 0, y: 250, width: 360, height: 50))
self.label.font = UIFont.systemFont(ofSize: 10)
self.label.textColor = UIColor.systemPink
self.label.textAlignment = NSTextAlignment.center
self.label.text = "Hello Word"
self.view.addSubview(self.label)
let observable = Observable<Int>.interval(0.5, scheduler: MainScheduler.instance)
observable.map{CGFloat($0)}.bind(to: label.fonsSize).disposed(by: disposeBag)
}
}
extension UILabel {
public var fonsSize:Binder<CGFloat>{
return Binder(self){
label, fontSize in label.font = UIFont.systemFont(ofSize: fontSize)
}
}
}