用CollectionView实现环形布局

XFCyclicAnnularFlowLayout

CollectionView 实现扇形(环形)布局

功能设置
  • 1.设置有多少层扇形(环形)

  • 2.设置该层有多少元素

  • 3.设置元素大小Size

  • 4.设置该层环绕的半径

  • 5.设置该层扇形的展开弧度

  • 6.设置所有元素的朝向

    • 朝上(默认)
    • 朝下
    • 朝里(头部指向圆心)
    • 朝外(头部与环形法线方向一致)
  • 7.设置该层环形中所有元素是否顺时针排布

    • 默认是顺时针排布
API说明
  • 当前组的扇形(环形)半径

    - (CGFloat)flowLayout:(XFCyclicAnnularFlowLayout *)flowLayout cyclicAnnularRadiusInSection:(NSInteger)section;
    

    返回参数类型值说明如下:

    CGFloat 返回当前组扇形(环形)的半径 (单位: π)
    
  • 当前位置Cell的大小(size)

    - (CGSize)flowLayout:(XFCyclicAnnularFlowLayout *)flowLayout cyclicAnnularItemSizeAtindexPath:(NSIndexPath *)indexPath;
    

    返回参数类型值说明如下:

    CGSize  返回当前位置(indexPath)cell的大小
    
  • 当前组的弧度范围(即该组展开弧度)

    - (CGFloat)flowLayout:(XFCyclicAnnularFlowLayout *)flowLayout cyclicAnnularRadianInSection:(NSInteger)section;
    

    返回参数类型值说明如下:

    CGFloat  返回当前组元素在视图上展开的弧度范围
    
  • 该组元素在扇形区域内是否顺时针展开

    - (BOOL )flowLayout:(XFCyclicAnnularFlowLayout *)flowLayout cyclicIsClockwiseInSection:(NSInteger)section;
    

    返回参数类型值说明如下:

    BOOL  该返回值设定视图当前环形中cell是顺时针依次排列,还是逆时针依次排列,默认是顺时针
    
  • 元素朝向

    - (XFCyclicAnnularItemOrientation )cyclicAnnularItemOrientationInFlowLayout:(XFCyclicAnnularFlowLayout *)flowLyout;
    

    返回参数类型值说明如下:

typedef NS_ENUM(NSUInteger, XFCyclicAnnularItemOrientation) {
    XFCyclicAnnularItemOrientationUp,           // 朝上 默认
    XFCyclicAnnularItemOrientationDown,         // 朝下
    XFCyclicAnnularItemOrientationInside,       // 朝内
    XFCyclicAnnularItemOrientationOutside       // 朝外
};