BTGridPager 是 UIScrollView 的子类,允许您在垂直和水平方向上无限滚动视图。
在您的控制器中实现 datasource/delegate 方法。
/**
* Protocol for handling grid pager events.
*/
@protocol BTGridPagerDelegate <NSObject>
@optional
/**
* Tells the delegate that a grid was selected
*
* @param gridPager The grid pager
* @param gridIndex The index of the grid that was selected.
*
* @return UIView The view for the grid.
*/
- (void) gridPager: (BTGridPager *) gridPager didSelectViewAtGridIndex: (BTGridIndex *) gridIndex;
/**
* Tells the delegate that the grid pager will change pages.
*
* @param gridPager The grid pager
* @param newIndex The page index
*/
- (void) gridPager: (BTGridPager *) gridPager willChangePage: (BTGridIndex *) newIndex;
/**
* Tells the delegate that the grid pager changed pages.
*
* @param gridPager The grid pager
* @param newIndex The page index
*/
- (void) gridPager: (BTGridPager *) gridPager didChangePage: (BTGridIndex *) newIndex;
@end
/**
* Protocol for providing grid data.
*/
@protocol BTGridPagerDataSource <NSObject>
@required
/**
* The number of sections (rows) for this grid pager
*
* @param gridPager The grid pager
*
* @return NSInteger The number of sections in the grid pager.
*/
- (NSInteger) numberOfRowsInGridPager: (BTGridPager *) gridPager;
/**
* The number of grids for the section
*
* @param gridPager The grid pager
* @param section The section to get grids for
*
* @return NSInteger The number of grids in the section.
*/
- (NSInteger) gridPager: (BTGridPager *) gridPager numberOfColumnsForRow: (NSInteger) section;
/**
* The grid to display in the given grid index
*
* @param gridPager The grid pager
* @param gridIndex The index to get the grid for.
* @param frame The frame for the view
*
* @return UIView The view for the grid section.
*/
- (UIView *) gridPager: (BTGridPager *) gridPager gridViewAtGridIndex: (BTGridIndex *) gridIndex withFrame: (CGRect) frame;
@end
使用这些位掩码自定义包装方向和重置模式
/**
* Sets mode for wrapping.
*
* Default: (BTGridWrappingDown | BTGridWrappingUp | BTGridWrappingRight | BTGridWrappingLeft)
*/
enum {
BTGridWrappingNone = 0,
BTGridWrappingUp = 1 << 0,
BTGridWrappingDown = 1 << 1,
BTGridWrappingLeft = 1 << 2,
BTGridWrappingRight = 1 << 3
};
typedef NSUInteger BTGridWrappingMode;
/**
* Sets mode for resetting to beginning of row/column
*
* BTGridResetModeRow Resets to first column on row change
* BTGridResetModeColumn Resets to first row on column change
*
* Default: BTGridResetModeNone
*/
enum {
BTGridResetModeNone = 0,
BTGridResetModeRow = 1 << 0,
BTGridResetModeColumn = 1 << 1
};
typedef NSUInteger BTGridResetMode;
ex:
self.gridPager.gridWrappingMode = (BTGridWrappingDown | BTGridWrappingUp | BTGridWrappingRight | BTGridWrappingLeft);
self.gridPager.gridResetMode = (BTGridResetModeNone);
默认情况下,当前视图两侧加载一个视图。如果您需要更多视图,可以使用以下命令调整
self.gridPager.gridPadding = (some integer);
Brandon Tate,[email protected]
BTGridPager 基于 MIT 许可。有关更多信息,请参阅 LICENSE 文件。