PersonViewUserAndOtherHeaderView.swift 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. //
  2. // PersonViewUserAndOtherHeaderView.swift
  3. // RainbowPlanet
  4. //
  5. // Created by 南鑫林 on 2019/6/17.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import UIKit
  9. class PersonViewUserAndOtherHeaderView: BaseView {
  10. var imageView: UIImageView!
  11. var imageViewFrame: CGRect!
  12. override func setupViews() {
  13. imageViewFrame = CGRect(x: 0, y: 0, width: kScreenWidth, height: 140 + kNavBarTotalHeight)
  14. addSubview(bgImageView)
  15. addSubview(bgView)
  16. bgView.addSubview(titleLabel)
  17. bgView.addSubview(subtitleLabel)
  18. bgView.addSubview(followNumberButton)
  19. bgView.addSubview(fanNumberButton)
  20. bgView.addSubview(avatarButton)
  21. bgView.addSubview(editButton)
  22. bgView.addSubview(followButton)
  23. }
  24. override func setupLayouts() {
  25. titleLabel.snp_makeConstraints { (make) in
  26. make.bottom.equalTo(subtitleLabel.snp_top).offset(-10)
  27. make.left.equalTo(14)
  28. make.right.equalTo(-100)
  29. }
  30. subtitleLabel.snp_makeConstraints { (make) in
  31. make.bottom.equalTo(followNumberButton.snp_top).offset(-30)
  32. make.left.equalTo(14)
  33. make.right.equalTo(-100)
  34. }
  35. followNumberButton.snp_makeConstraints { (make) in
  36. make.bottom.equalTo(-23)
  37. make.left.equalTo(14)
  38. make.height.equalTo(20)
  39. }
  40. fanNumberButton.snp_makeConstraints { (make) in
  41. make.centerY.height.equalTo(followNumberButton)
  42. make.left.equalTo(followNumberButton.snp_right).offset(20)
  43. }
  44. editButton.snp_makeConstraints { (make) in
  45. make.right.equalTo(-20)
  46. make.bottom.equalTo(-23)
  47. make.width.equalTo(64)
  48. make.height.equalTo(24)
  49. }
  50. followButton.snp_makeConstraints { (make) in
  51. make.right.equalTo(-20)
  52. make.bottom.equalTo(-23)
  53. make.width.equalTo(64)
  54. make.height.equalTo(24)
  55. }
  56. avatarButton.snp_makeConstraints { (make) in
  57. make.bottom.equalTo(-66)
  58. make.right.equalTo(-20)
  59. make.size.equalTo(60)
  60. }
  61. }
  62. private lazy var bgImageView: UIImageView = {
  63. let bgImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 140 + kNavBarTotalHeight))
  64. bgImageView.image = kImage(name: "Rectangle 2")
  65. bgImageView.contentMode = .scaleAspectFill
  66. return bgImageView
  67. }()
  68. private lazy var bgView: UIView = {
  69. let bgView = UIView(frame: CGRect(x: 0, y: 0, width: kScreenWidth, height: 140 + kNavBarTotalHeight))
  70. bgView.backgroundColor = UIColor(hexString: "000000", alpha: 0.5)
  71. return bgView
  72. }()
  73. private lazy var titleLabel: UILabel = {
  74. let titleLabel = UILabel()
  75. titleLabel.text = "昵称"
  76. titleLabel.textColor = .white
  77. titleLabel.font = kBoldFont18
  78. return titleLabel
  79. }()
  80. private lazy var subtitleLabel: UILabel = {
  81. let subtitleLabel = UILabel()
  82. subtitleLabel.text = "添加个人简介,让更多的彩虹居民认识你~"
  83. subtitleLabel.textColor = kbbbbbbColor
  84. subtitleLabel.font = kRegularFont10
  85. return subtitleLabel
  86. }()
  87. private lazy var followNumberButton: UIButton = {
  88. let followNumberButton = UIButton(type: UIButton.ButtonType.custom)
  89. followNumberButton.setTitle("283 关注", for: UIControl.State.normal)
  90. followNumberButton.setTitleColor(kf0f0f0Color, for: UIControl.State.normal)
  91. followNumberButton.titleLabel?.font = kBoldFont14
  92. return followNumberButton
  93. }()
  94. private lazy var fanNumberButton: UIButton = {
  95. let fanNumberButton = UIButton(type: UIButton.ButtonType.custom)
  96. fanNumberButton.setTitle("240 粉丝", for: UIControl.State.normal)
  97. fanNumberButton.setTitleColor(kf0f0f0Color, for: UIControl.State.normal)
  98. fanNumberButton.titleLabel?.font = kBoldFont14
  99. return fanNumberButton
  100. }()
  101. private lazy var avatarButton: UIButton = {
  102. let avatarButton = UIButton(type: UIButton.ButtonType.custom)
  103. avatarButton.setBackgroundImage(kImage(name: "defaul_tavatar"), for: UIControl.State.normal)
  104. avatarButton.cornerRadius = 30
  105. avatarButton.masksToBounds = true
  106. return avatarButton
  107. }()
  108. private lazy var editButton : UIButton = {
  109. let editButton = UIButton(type: UIButton.ButtonType.custom)
  110. editButton.cornerRadius = 12
  111. editButton.masksToBounds = true
  112. editButton.setTitle("编辑资料", for: UIControl.State.normal)
  113. editButton.setTitleColor(kffffffColor, for: UIControl.State.normal)
  114. editButton.titleLabel?.font = kRegularFont12
  115. editButton.layer.borderColor = kffffffColor.cgColor
  116. editButton.layer.borderWidth = 64
  117. editButton.isHidden = true
  118. return editButton
  119. }()
  120. private lazy var followButton: UIButton = {
  121. let followButton = UIButton(type: UIButton.ButtonType.custom)
  122. followButton.setTitle("关注", for: UIControl.State.normal)
  123. followButton.setImage(kImage(name: "center_attention_white"), for: UIControl.State.normal)
  124. followButton.setImage(kImage(name: "center_followed_white"), for: UIControl.State.selected)
  125. followButton.setBackgroundImage(UIImage.imageWithColor(color: kThemeColor), for: UIControl.State.normal)
  126. followButton.setBackgroundImage(UIImage.imageWithColor(color: UIColor.clear), for: UIControl.State.selected)
  127. followButton.titleLabel?.font = kMediumFont13
  128. followButton.alpha = 0
  129. followButton.cornerRadius = 12
  130. followButton.masksToBounds = true
  131. followButton.isHidden = true
  132. followButton.rx.tap.subscribe(onNext: {
  133. [weak self] (data) in
  134. followButton.isSelected = !followButton.isSelected
  135. }).disposed(by: disposeBag)
  136. return followButton
  137. }()
  138. func scrollViewDidScroll(contentOffsetY: CGFloat) {
  139. var frame = imageViewFrame!
  140. frame.size.height -= contentOffsetY
  141. frame.origin.y = contentOffsetY
  142. bgImageView.frame = frame
  143. bgView.frame = frame
  144. }
  145. }