Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. class ScoreLayer: CALayer {
  2. var score = 0 {
  3. didSet {
  4. updateValue()
  5. }
  6. }
  7.  
  8. let bgLayer: CALayer = {
  9. let layer = CALayer()
  10. layer.contentsScale = UIScreen.main.scale
  11. layer.backgroundColor = #colorLiteral(red: 0.2392156869, green: 0.6745098233, blue: 0.9686274529, alpha: 1)
  12. layer.shadowOffset = .zero
  13. layer.shadowRadius = 3
  14. layer.shadowColor = UIColor.black.cgColor
  15. layer.shadowOpacity = 0.4
  16. return layer
  17. }()
  18.  
  19. let textLayer: CATextLayer = {
  20. let layer = CATextLayer()
  21. layer.contentsScale = UIScreen.main.scale
  22. layer.alignmentMode = .center
  23. layer.foregroundColor = UIColor.white.cgColor
  24. layer.fontSize = 20
  25. layer.font = UIFont.preferredFont(forTextStyle: .largeTitle)
  26. return layer
  27. }()
  28.  
  29. let frameLayer: CALayer = {
  30. let layer = CALayer()
  31. layer.contentsScale = UIScreen.main.scale
  32. layer.borderColor = #colorLiteral(red: 0.2392156869, green: 0.6745098233, blue: 0.9686274529, alpha: 1)
  33. layer.borderWidth = 3
  34. layer.shadowOffset = .zero
  35. layer.shadowRadius = 3
  36. layer.shadowColor = UIColor.black.cgColor
  37. layer.shadowOpacity = 0.7
  38. return layer
  39. }()
  40.  
  41. override init() {
  42. super.init()
  43. contentsScale = UIScreen.main.scale
  44.  
  45. addSublayer(bgLayer)
  46. addSublayer(textLayer)
  47. addSublayer(frameLayer)
  48.  
  49. updateValue()
  50. }
  51.  
  52. override func layoutSublayers() {
  53. bgLayer.frame = bounds
  54. frameLayer.frame = bounds
  55. textLayer.frame = bounds
  56.  
  57. bgLayer.transform = CATransform3DMakeRotation(.pi / 4, 0, 0, 1)
  58. frameLayer.transform = CATransform3DMakeRotation(.pi / 4, 0, 0, 1)
  59. }
  60.  
  61. private func updateValue() {
  62. textLayer.string = "(score)"
  63. }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement