You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

118 lines
3.7 KiB

//
// SportDetailHeaderView.swift
// Lookfit
//
// Created by lemo. on 2020/4/20.
// Copyright © 2020 Sheldon. All rights reserved.
//
import UIKit
class SportDetailHeaderView: UIView {
///
lazy var sportTrackView: SportTrackView = {
let view = SportTrackView(frame: CGRect(x: 0, y: 0, width: kScreenW, height: kScaleHeight(380)))
return view
}()
///
lazy var sportUserView: SportUserView = {
let view = SportUserView()
view.backgroundColor = .orange
view.userIconImg.image = R.image.icon_header()
if let userInfo = UserDefaultsManager.getUserInfo() {
view.userNameLabel.text = userInfo.nickname
if userInfo.avatarImg != nil {
view.userIconImg.image = userInfo.avatarImg
}
}
return view
}()
lazy var timeImg: UIImageView = {
return UIImageView(image: R.image.icon_date())
}()
lazy var timeLabel: UILabel = {
let label = UILabel()
label.textColor = kHexColor(0x888888)
label.font = SystemRegularFont(12)
return label
}()
lazy var distanceLabel: UILabel = {
let label = UILabel()
label.textColor = kHexColor(0x2A2A2A)
label.font = UIFont.init(name: "DINAlternate-Bold", size: kScaleWidth(44))
return label
}()
lazy var distanceUnitLabel: UILabel = {
let label = UILabel()
label.textColor = kHexColor(0x888888)
label.font = SystemRegularFont(12)
return label
}()
override init(frame: CGRect) {
super.init(frame: frame)
addSubview(sportTrackView)
addSubview(sportUserView)
addSubview(timeImg)
addSubview(timeLabel)
addSubview(distanceLabel)
addSubview(distanceUnitLabel)
layoutUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func layoutUI() {
sportUserView.snp.makeConstraints { (make) in
make.top.equalTo(sportTrackView.snp.bottom)
make.width.equalToSuperview()
make.height.equalTo(kScaleHeight(80))
}
timeLabel.snp.makeConstraints { (make) in
make.centerX.equalToSuperview()
make.top.equalTo(sportUserView.snp.bottom)
}
timeImg.snp.makeConstraints { (make) in
make.right.equalTo(timeLabel.snp.left).offset(-6)
make.height.width.equalTo(8)
make.centerY.equalTo(timeLabel.snp.centerY)
}
distanceLabel.snp.makeConstraints { (make) in
make.centerX.equalToSuperview()
make.top.equalTo(timeLabel.snp.bottom).offset(10)
}
distanceUnitLabel.snp.makeConstraints { (make) in
make.left.equalTo(distanceLabel.snp.right).offset(10)
make.firstBaseline.equalTo(distanceLabel.snp.firstBaseline)
}
}
}
// MARK: - RxExtension
extension Reactive where Base: SportDetailHeaderView {
//
func trajectory() -> Binder<(Bool, [CLLocationCoordinate2D])> {
return Binder(self.base, binding: { (view, arg1) in
let (hidden, coordinates) = arg1
if hidden == false {
view.sportTrackView.drawTrajectory(coordinates: coordinates)
}else {
view.sportTrackView.removeFromSuperview()
view.frame.height = kScaleHeight(193)
view.sportUserView.snp.remakeConstraints { (make) in
make.top.equalTo(15)
make.width.equalToSuperview()
make.height.equalTo(kScaleHeight(80))
}
}
})
}
}