生活随笔
收集整理的這篇文章主要介紹了
RxSwift之UI控件Label扩展的使用
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、將數(shù)據(jù)綁定到 text 屬性上(普通文本)
- 當(dāng)程序啟動(dòng)時(shí)就開(kāi)始計(jì)時(shí),同時(shí)將已過(guò)去的時(shí)間格式化后顯示在 label 標(biāo)簽上:
let label
= UILabel(frame
:CGRect(x
:20, y
:40, width
:300, height
:100))
self.view
.addSubview(label
)
let timer
= Observable<Int>.interval(0.1, scheduler
: MainScheduler.instance
)
timer
.map{ String(format
: "%0.2d:%0.2d.%0.1d",arguments
: [($
0 / 600) % 600, ($
0 % 600 ) / 10, $
0 % 10]) }
.bind(to
: label
.rx
.text
)
.disposed(by
: disposeBag
)
二、將數(shù)據(jù)綁定到 attributedText 屬性上(富文本)
- 和上例一樣,只是修改分和秒這部分的文字樣式,以及背景色:
func formatTimeInterval(ms
: NSInteger) -> NSMutableAttributedString {let string
= String(format
: "%0.2d:%0.2d.%0.1d",arguments
: [(ms
/ 600) % 600, (ms
% 600 ) / 10, ms
% 10])let attributeString
= NSMutableAttributedString(string
: string
)attributeString
.addAttribute(NSAttributedString.Key.font
,value
: UIFont(name
: "HelveticaNeue-Bold", size
: 16)!,range
: NSMakeRange(0, 5))attributeString
.addAttribute(NSAttributedString.Key.foregroundColor
,value
: UIColor.white
, range
: NSMakeRange(0, 5))attributeString
.addAttribute(NSAttributedString.Key.backgroundColor
,value
: UIColor.orange
, range
: NSMakeRange(0, 5))return attributeString
}
let disposeBag
= DisposeBag()
let label
= UILabel(frame
:CGRect(x
:20, y
:40, width
:300, height
:100))
self.view
.addSubview(label
)
let timer
= Observable<Int>.interval(0.1, scheduler
: MainScheduler.instance
)
timer
.map(formatTimeInterval
)
.bind(to
: label
.rx
.attributedText
)
.disposed(by
: disposeBag
)
總結(jié)
以上是生活随笔為你收集整理的RxSwift之UI控件Label扩展的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。