BTGridPager 0.1.9

BTGridPager 0.1.9

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

Brandon Tate 维护。



  • Brandon Tate

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 文件。