BBAGridPannelDataSource.h 1.99 KB
//
//  BBAGridPannelDataSource.h
//  BBAPods
//
//  Created by liurui12 on 16/8/19.
//  Copyright © 2016年 Baidu. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "BBAPannelAction.h"
#import "BBAGridPannelView.h"
#import "BBAGridPannelProtocol.h"

@class BBAGridPannelConfigData;

typedef enum : NSUInteger {
    BBAGridPannelDataTypeSingleDimensionalArray = 0,    //一维数组类型
    BBAGridPannelDataTypeDoubleDimensionalArray = 1,    //二维数组类型
} BBAGridPannelDataType;

extern CGFloat const kPannelHalfMarginInsetX; // 多出半个展示时边界距离

@interface BBAGridPannelDataSource : NSObject<BBAGridPannelDataSource>

@property (nonatomic , weak)    BBAGridPannelView *weakPannelView;
@property (nonatomic, strong, readonly)  NSArray<NSArray<BBAPannelAction *> *> *rowsActions;
@property (nonatomic, strong, readonly)  NSArray<BBAPannelAction *> *actions;
@property (nonatomic, strong, readonly)  BBAGridPannelConfigData *configData;
@property (nonatomic, copy) NSString *cellIdentifier;
@property (nonatomic, assign, readonly) BBAGridPannelDataType dataType;

- (instancetype)initWithActions:(NSArray<BBAPannelAction *> *)actions configData:(BBAGridPannelConfigData *)configData;

- (instancetype)initWithRowsActions:(NSArray<NSArray<BBAPannelAction *> *> *)actions configData:(BBAGridPannelConfigData *)configData;

/*!
 @method
 @brief     屏幕size。
 @result    CGRect
 */
+ (CGRect)windowFrameWithOrientation:(UIInterfaceOrientation)orientation;

/*!
 @method
 @brief     返回面板高度
 @result    高度 。
 */
-(CGFloat)pannelHeight;


/*!
 @method
 @brief  更新actions
 */
-(void)updateActions:(NSArray<BBAPannelAction *> *)actions;

/*!
@method
@brief  更新二维rowsActions
*/
-(void)updateRowsActions:(NSArray<NSArray<BBAPannelAction *> *> *)rowsActions;

/*!
 * @method 当前 actions 数组中可能会存在无效的action,获取去除无效的action的item个数
 *
 */
- (NSUInteger)numberOfItemNoEmptyActionInDataSource;

-(UIEdgeInsets)contenInsets;

@end