MineTableViewHeaderView.swift 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. //
  2. // MineTableViewHeaderView.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/4/24.
  6. // Copyright © 2019 南鑫林. All rights reserved.
  7. //
  8. import UIKit
  9. class MineTableViewHeaderView: BaseView {
  10. typealias AddressClosure = () -> Void
  11. var addressClosure : AddressClosure?
  12. override func setupViews() {
  13. addSubview(bgView)
  14. addSubview(homepageView)
  15. homepageView.addSubview(avatarBgButton)
  16. homepageView.addSubview(lineLabel)
  17. homepageView.addSubview(addressBgButton)
  18. avatarBgButton.addSubview(avatarButton)
  19. avatarBgButton.addSubview(nickNameLabel)
  20. avatarBgButton.addSubview(goButton)
  21. addressBgButton.addSubview(addressLabel)
  22. addressBgButton.addSubview(goAddressButton)
  23. }
  24. override func setupLayouts() {
  25. homepageView.snp.makeConstraints { (make) in
  26. make.top.equalTo(kNavBarTotalHeight)
  27. make.left.equalTo(15)
  28. make.right.equalTo(-15)
  29. make.height.equalTo(124)
  30. }
  31. avatarBgButton.snp.makeConstraints { (make) in
  32. make.top.left.right.equalToSuperview()
  33. make.height.equalTo(80)
  34. }
  35. lineLabel.snp.makeConstraints { (make) in
  36. make.top.equalTo(avatarBgButton.snp.bottom)
  37. make.left.equalToSuperview().offset(16)
  38. make.right.equalToSuperview()
  39. make.height.equalTo(0.5)
  40. }
  41. addressBgButton.snp.makeConstraints { (make) in
  42. make.top.equalTo(lineLabel.snp.bottom)
  43. make.bottom.left.right.equalToSuperview()
  44. }
  45. avatarButton.snp.makeConstraints { (make) in
  46. make.centerY.equalToSuperview()
  47. make.left.equalToSuperview().offset(16)
  48. make.size.equalTo(50)
  49. }
  50. nickNameLabel.snp.makeConstraints { (make) in
  51. make.centerY.equalToSuperview()
  52. make.left.equalTo(avatarButton.snp.right).offset(15)
  53. }
  54. goButton.snp.makeConstraints { (make) in
  55. make.centerY.equalToSuperview()
  56. make.right.equalTo(-10)
  57. }
  58. goButton.layoutButton(edgeInsetsStyle: ButtonEdgeInsetsStyle.right, imageTitleSpace: 4)
  59. addressLabel.snp.makeConstraints { (make) in
  60. make.centerY.equalToSuperview()
  61. make.left.equalTo(16)
  62. }
  63. goAddressButton.snp.makeConstraints { (make) in
  64. make.centerY.equalToSuperview()
  65. make.right.equalTo(-10)
  66. }
  67. }
  68. private lazy var bgView: UIView = {
  69. let bgView = UIView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: kNavBarTotalHeight + 46))
  70. bgView.backgroundColor = kf7f8faColor
  71. let bgLayer1 = CAGradientLayer()
  72. bgLayer1.colors = [UIColor(red: 0.99, green: 0.74, blue: 0.42, alpha: 1).cgColor, UIColor(red: 1, green: 0.67, blue: 0.2, alpha: 1).cgColor]
  73. bgLayer1.locations = [0, 1]
  74. bgLayer1.frame = bgView.bounds
  75. bgLayer1.startPoint = CGPoint(x: 1, y: 0)
  76. bgLayer1.endPoint = CGPoint(x: 1.13, y: 1.13)
  77. bgView.layer.addSublayer(bgLayer1)
  78. return bgView
  79. }()
  80. private lazy var homepageView : UIView = {
  81. let homepageView = UIView()
  82. homepageView.backgroundColor = UIColor.white
  83. homepageView.cornerRadius = 2.5
  84. homepageView.masksToBounds = true
  85. return homepageView
  86. }()
  87. private lazy var avatarBgButton: UIButton = {
  88. let avatarBgButton = UIButton(type: UIButton.ButtonType.custom)
  89. return avatarBgButton
  90. }()
  91. private lazy var lineLabel: UILabel = {
  92. let lineLabel = UILabel()
  93. lineLabel.backgroundColor = kf5f5f5Color
  94. return lineLabel
  95. }()
  96. private lazy var addressBgButton: UIButton = {
  97. let avatarBgButton = UIButton(type: UIButton.ButtonType.custom)
  98. avatarBgButton.rx.tap.subscribe(onNext: { [weak self] (data) in
  99. if let addressClosure = self?.addressClosure {
  100. addressClosure()
  101. }
  102. }).disposed(by: disposeBag)
  103. return avatarBgButton
  104. }()
  105. private lazy var avatarButton: UIButton = {
  106. let avatarButton = UIButton(type: UIButton.ButtonType.custom)
  107. avatarButton.setBackgroundImage(kImage(name: "logo"), for: UIControl.State.normal)
  108. avatarButton.cornerRadius = 25
  109. avatarButton.masksToBounds = true
  110. return avatarButton
  111. }()
  112. private lazy var nickNameLabel: UILabel = {
  113. let nickNameLabel = UILabel()
  114. nickNameLabel.text = "昵称"
  115. nickNameLabel.textColor = k333333Color
  116. nickNameLabel.font = kMediumFont21
  117. return nickNameLabel
  118. }()
  119. private lazy var goButton: UIButton = {
  120. let goButton = UIButton(type: UIButton.ButtonType.custom)
  121. goButton.setImage(kImage(name: "my_arrows_unfold"), for: UIControl.State.normal)
  122. goButton.setTitle("个人主页", for: UIControl.State.normal)
  123. goButton.setTitleColor(k999999Color, for: UIControl.State.normal)
  124. goButton.titleLabel?.font = kRegularFont13
  125. return goButton
  126. }()
  127. private lazy var addressLabel: UILabel = {
  128. let addressLabel = UILabel()
  129. addressLabel.text = "我的地址管理"
  130. addressLabel.textColor = k333333Color
  131. addressLabel.font = kRegularFont16
  132. return addressLabel
  133. }()
  134. private lazy var goAddressButton: UIButton = {
  135. let goAddressButton = UIButton(type: UIButton.ButtonType.custom)
  136. goAddressButton.setImage(kImage(name: "my_arrows_unfold"), for: UIControl.State.normal)
  137. return goAddressButton
  138. }()
  139. var userModel : UserModel? {
  140. didSet {
  141. avatarButton.kf.setImage(with: kURLImage(name: userModel?.avatarurl ?? ""), for: UIControl.State.normal, placeholder: kImage(name: "logo"))
  142. nickNameLabel.text = userModel?.username
  143. }
  144. }
  145. }