UIView+Extension.swift 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. //
  2. // UIView+Extension.swift
  3. //
  4. //
  5. // Created by LXF on 16/3/29.
  6. // Copyright © 2016年 LXF. All rights reserved.
  7. //
  8. import Foundation
  9. import UIKit
  10. extension UIView {
  11. //MARK: - storyboard上添加属性 可以直接配置 省得每次都要代码实现
  12. // border 宽度
  13. @IBInspectable var borderWidth: CGFloat {
  14. get {
  15. return self.layer.borderWidth
  16. }
  17. set {
  18. self.layer.borderWidth = newValue
  19. }
  20. }
  21. // border的颜色
  22. @IBInspectable var borderColor: UIColor {
  23. get {
  24. return UIColor(cgColor: self.layer.borderColor!)
  25. }
  26. set {
  27. self.layer.borderColor = newValue.cgColor
  28. }
  29. }
  30. // 圆角
  31. @IBInspectable var cornerRadius: CGFloat {
  32. get {
  33. return self.layer.cornerRadius
  34. }
  35. set {
  36. self.layer.cornerRadius = newValue
  37. self.layer.masksToBounds = newValue > 0
  38. }
  39. }
  40. func setAnchorConstraintsFullSizeTo(view: UIView, padding: CGFloat = 0) {
  41. self.translatesAutoresizingMaskIntoConstraints = false
  42. self.topAnchor.constraint(equalTo: view.topAnchor, constant: padding).isActive = true
  43. self.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -padding).isActive = true
  44. self.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: padding).isActive = true
  45. self.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -padding).isActive = true
  46. }
  47. func createLineView(_ frame:CGRect,_ color:UIColor) -> UIView {
  48. self.frame = frame
  49. self.backgroundColor = color
  50. return self
  51. }
  52. /// 裁剪 view 的圆角
  53. func clipRectCorner(direction: UIRectCorner, cornerRadius: CGFloat) {
  54. let cornerSize = CGSize(width: cornerRadius, height: cornerRadius)
  55. let maskPath = UIBezierPath(roundedRect: bounds, byRoundingCorners: direction, cornerRadii: cornerSize)
  56. let maskLayer = CAShapeLayer()
  57. maskLayer.frame = bounds
  58. maskLayer.path = maskPath.cgPath
  59. layer.addSublayer(maskLayer)
  60. layer.mask = maskLayer
  61. }
  62. public var x: CGFloat{
  63. get{
  64. return self.frame.origin.x
  65. }
  66. set{
  67. var r = self.frame
  68. r.origin.x = newValue
  69. self.frame = r
  70. }
  71. }
  72. public var y: CGFloat{
  73. get{
  74. return self.frame.origin.y
  75. }
  76. set{
  77. var r = self.frame
  78. r.origin.y = newValue
  79. self.frame = r
  80. }
  81. }
  82. /// 右边界的x值
  83. public var rightX: CGFloat{
  84. get{
  85. return self.x + self.width
  86. }
  87. set{
  88. var r = self.frame
  89. r.origin.x = newValue - frame.size.width
  90. self.frame = r
  91. }
  92. }
  93. /// 下边界的y值
  94. public var bottomY: CGFloat{
  95. get{
  96. return self.y + self.height
  97. }
  98. set{
  99. var r = self.frame
  100. r.origin.y = newValue - frame.size.height
  101. self.frame = r
  102. }
  103. }
  104. public var centerX : CGFloat{
  105. get{
  106. return self.center.x
  107. }
  108. set{
  109. self.center = CGPoint(x: newValue, y: self.center.y)
  110. }
  111. }
  112. public var centerY : CGFloat{
  113. get{
  114. return self.center.y
  115. }
  116. set{
  117. self.center = CGPoint(x: self.center.x, y: newValue)
  118. }
  119. }
  120. }