Архитектурный шаблон "Мрак в моделях" на нескольких языках и платформах
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
578B

  1. import Foundation
  2. protocol MItemsCount {
  3. var itemsCount: Int { get }
  4. }
  5. func memorySide() -> CGFloat {
  6. return 50
  7. }
  8. func memorySpace() -> CGFloat {
  9. return 20
  10. }
  11. func memoryGap() -> CGFloat {
  12. return memorySide() + memorySpace()
  13. }
  14. func memoryItemPositions(M: MItemsCount) -> [(CGFloat, CGFloat)] {
  15. var pos = [(CGFloat, CGFloat)]()
  16. for i in stride(from: 0, to: M.itemsCount, by: 1) {
  17. let row = floor(Double(i) / 4)
  18. let x = memoryGap() + (Double(i) - row * 4) * memoryGap()
  19. let y = memoryGap() + row * memoryGap()
  20. pos.append((x, y))
  21. }
  22. return pos
  23. }