MMSpreadsheetView 0.0.3

MMSpreadsheetView 0.0.3

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2014年12月

Jeff Lacey维护。



  • 作者:
  • Jeff Lacey

互手机械表视图

MMSpreadsheetView是一个可配置的类似电子表格的视图。根据初始的表头行或列配置,最多会协调四个集合视图,以提供用户界面。虽然最初是为了在iPad上全屏使用而设计的,但它可以很好地缩放到较小视图中。


文档

官方appledoc文档可在CocoaDocs找到。


MMSpreadsheetView的安装

您可以使用CocoaPods在项目中安装MMSpreadsheetView。

pod 'MMSpreadsheetView', '~> 0.0.3'

初始化一个电子表格视图

MMSpreadsheetView的指定初始化器需要传入表头行和列数以及初始的边界矩形。注册您将使用的单元格类,并设置代理和数据源。最后,将该视图作为子视图添加。

// Create the spreadsheet in code.
MMSpreadsheetView *spreadSheetView = [[MMSpreadsheetView alloc] initWithNumberOfHeaderRows:1 numberOfHeaderColumns:1 frame:self.view.bounds];

// Register your cell classes.
[spreadSheetView registerCellClass:[MMGridCell class] forCellWithReuseIdentifier:@"GridCell"];
[spreadSheetView registerCellClass:[MMTopRowCell class] forCellWithReuseIdentifier:@"TopRowCell"];
[spreadSheetView registerCellClass:[MMLeftColumnCell class] forCellWithReuseIdentifier:@"LeftColumnCell"];

// Set the delegate & datasource spreadsheet view.
spreadSheetView.delegate = self;
spreadSheetView.dataSource = self;

// Add the spreadsheet view as a subview.
[self.view addSubview:spreadSheetView];
self.spreadSheetView = spreadSheetView;

注意事项

  • 性能:显示的单元格数量增加时,滚动性能会下降。一个1000x1000的大网格初始化需要很长时间,但如果单元格大小足够大(150x150)或更大,滚动性能不会受到影响。然而,一个20x20的小网格基本上无法滚动。
  • NSIndexPath便利分类:该库包含了对NSIndexPath的便利分类,以减少混淆。"indexPath.mmSpreadsheetRow"和"indexPath.mmSpreadsheetColumn"的添加分别代表其相应的元素。
  • CollectionView透传方法:下面提供的方法支持单元格上的复制/粘贴操作。如果有任何需要实现,应实现所有三个。
    1. spreadsheetView:shouldShowMenuForItemAtIndexPath
    2. spreadsheetView:canPerformAction:forItemAtIndexPath:withSender
    3. spreadsheetView:performAction:forItemAtIndexPath:withSender

  • 意外手势处理:MMSpreadsheetView连接到收集视图的拖拽手势识别器以实现“专用触摸”,这将禁用在网格的其他部分上注册轻点, 直到第一次触摸结束。当视图处于回弹状态时,还会禁用触摸,以防止将视图锁定在不方便的状态中。

致谢

由这些优秀的人设计开发的 Mutual Mobile

开发


反馈

欢迎对库提出反馈。创建Github问题或在Twitter上联系我们。


许可证 License MIT

MMSpreadsheetView 在MIT许可下可用。更多信息请参阅LICENSE文件。