Snap.swift 599 B

123456789101112131415161718192021222324252627
  1. //
  2. // Snap.swift
  3. // SwiftBilibili
  4. //
  5. // Created by 罗文 on 2021/1/13.
  6. // Copyright © 2021年 罗文. All rights reserved.
  7. //
  8. import UIKit
  9. /// Ceil to snap pixel
  10. func snap(_ x: CGFloat) -> CGFloat {
  11. let scale = UIScreen.main.scale
  12. return ceil(x * scale) / scale
  13. }
  14. func snap(_ point: CGPoint) -> CGPoint {
  15. return CGPoint(x: snap(point.x), y: snap(point.y))
  16. }
  17. func snap(_ size: CGSize) -> CGSize {
  18. return CGSize(width: snap(size.width), height: snap(size.height))
  19. }
  20. func snap(_ rect: CGRect) -> CGRect {
  21. return CGRect(origin: snap(rect.origin), size: snap(rect.size))
  22. }