PopTopTriangleView.swift 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //
  2. // PopTopTriangleView.swift
  3. // RainbowPlanet
  4. //
  5. // Created by Christopher on 2019/5/22.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. //
  8. import UIKit
  9. class PopTopTriangleView: BaseView {
  10. var address: String? {
  11. didSet {
  12. addressLabel.text = self.address
  13. }
  14. }
  15. override func setupViews() {
  16. self.backgroundColor = kffffffColor
  17. addSubview(triangleView)
  18. addSubview(contentView)
  19. contentView.addSubview(addressLabel)
  20. }
  21. override func setupLayouts() {
  22. triangleView.snp.makeConstraints { (make) in
  23. make.top.equalToSuperview()
  24. make.left.equalToSuperview().offset(4)
  25. make.width.equalTo(15)
  26. make.height.equalTo(8)
  27. }
  28. contentView.snp.makeConstraints { (make) in
  29. make.top.equalTo(triangleView.snp_bottom)
  30. make.left.right.equalToSuperview()
  31. make.height.equalTo(24)
  32. }
  33. addressLabel.snp.makeConstraints { (make) in
  34. make.left.equalToSuperview().offset(5)
  35. make.right.equalToSuperview().offset(-8)
  36. make.bottom.equalToSuperview().offset(-5)
  37. make.height.equalTo(14)
  38. }
  39. }
  40. private lazy var triangleView: UIView = {
  41. let triangleView = UIView(frame: CGRect(x: 0, y: 0, width: 8, height: 14))
  42. triangleView.backgroundColor = kffffffColor
  43. // 画三角
  44. let trianglePath = UIBezierPath()
  45. var point = CGPoint(x: 0, y: 8)
  46. trianglePath.move(to: point)
  47. point = CGPoint(x: 14/2, y: 0)
  48. trianglePath.addLine(to: point)
  49. point = CGPoint(x: 14, y: 8)
  50. trianglePath.addLine(to: point)
  51. trianglePath.close()
  52. let triangleLayer = CAShapeLayer()
  53. triangleLayer.path = trianglePath.cgPath
  54. triangleLayer.fillColor = kRGBAColor(r: 0, g: 0, b: 0, a: 0.6).cgColor
  55. triangleView.layer.addSublayer(triangleLayer)
  56. return triangleView
  57. }()
  58. private lazy var contentView: UIView = {
  59. let contentView = UIView()
  60. contentView.backgroundColor = UIColor.black
  61. contentView.alpha = 0.6
  62. contentView.cornerRadius = 2
  63. contentView.masksToBounds = true
  64. return contentView
  65. }()
  66. private lazy var addressLabel: UILabel = {
  67. let addressLabel = UILabel()
  68. addressLabel.text = "建设西路新旅城南门自提点"
  69. addressLabel.textColor = kffffffColor
  70. addressLabel.font = kScaleRegularFont14
  71. return addressLabel
  72. }()
  73. }