ReorderableGridView 0.2

ReorderableGridView 0.2

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最新版本2015年3月
SPM支持 SPM

Cem Olcay 维护。



  • 作者:
  • Cem Olcay

ReorderableGridView-Swift

使用 Swift 实现的可重排序网格视图方案。
它是 UIScrollView 的子类,不是一个集合视图布局。
自动根据项目宽度设置水平项目间距。因此项目必须是固定宽度的。
还自动设置其内容大小。
如果您在更改方向后调用 gridView?.invalidateLayout(),它将根据新的方向布局网格。

示例

alt tag

用法

ReorderableGridView.swift 复制并粘贴到您的项目中。

  gridView = ReorderableGridView(frame: self.view.frame, itemWidth: 180, verticalPadding: 20)
  self.view.addSubview(gridView!)

网格视图准备就绪!

现在您可以为它添加 ReorderableView 实例

  let itemView = ReorderableView (x: 0, y: 0, w: 180, h: 250)
  ...
  gridView?.addReorderableView(itemView)

  // or
  let pos = GridPosition (x: 0, y: 1)
  gridView?addReorderableView (itemView, gridPosition: pos)

或移除它们

gridView?.removeReorderableViewAtGridPosition(GridPosition (x: 0, y: 0))

// or
gridView?.removeReorderableView (itemView)

设计提示
视图本身没有任何边距填充。
它使用整个框架宽度来计算一行中可以容纳多少个 ReorderableView,以及它们的水平填充量。
列之间的填充(垂直填充)可以在初始化方法中设置:
默认为 10。
您可以使用容器视图并使用类似以下内容:
CGRectInset (containerView.frame, marginX, marginY)
在具有边距初始化网格时使用

可选值

  var reorderable : Bool = true
  var draggable : Bool = true
  var draggableDelegate: Draggable?

如果要设置网格是否可编辑

Draggable 协议

func didDragStartedForView (reorderableGridView: ReordableGridView, view: ReordableView)
func didDraggedView (reorderableGridView: ReordableGridView, view: ReordableView)
func didDragEndForView (reorderableGridView: ReordableGridView, view: ReordableView)

如果要访问网格中的拖放操作信息,请设置 gridView.draggableDelegate = self 并实现 Draggable 协议功能。
这可以用于多个网格布局。
示例包含在演示的第二个选项卡中。