iPadでの表示
iPad(初期)でデモを実行すると少しもっさりする。デモは大きな表(3x4x30x10=3600セル)だったので、セルの数を減らしてみたところ(3x10=300セル)まあまあな応答速度に。
UITableView のようにデータソース、デリゲートを介して表示データやヘッダ情報を渡す。UITableViewでいうセクションが行と列両方にあるので画像のように行と列のヘッダが表の中に現れる。
@protocol MDSpreadViewDataSource@required - (NSInteger)spreadView:(MDSpreadView *)aSpreadView numberOfColumnsInSection:(NSInteger)section; - (NSInteger)spreadView:(MDSpreadView *)aSpreadView numberOfRowsInSection:(NSInteger)section; - (MDSpreadViewCell *)spreadView:(MDSpreadView *)aSpreadView cellForRowAtIndexPath:(NSIndexPath *)rowPath forColumnAtIndexPath:(NSIndexPath *)columnPath; :
@protocol MDSpreadViewDelegateまたセルにあたる MDSpreadViewCellが用意されていて、これもUITableViewのようにカスタマイズすれば画像や任意のデザインを入れられると思う。@optional - (CGFloat)spreadView:(MDSpreadView *)aSpreadView heightForRowAtIndexPath:(NSIndexPath *)indexPath; - (CGFloat)spreadView:(MDSpreadView *)aSpreadView heightForRowHeaderInSection:(NSInteger)rowSection; // pass 0 to hide header - (CGFloat)spreadView:(MDSpreadView *)aSpreadView widthForColumnAtIndexPath:(NSIndexPath *)indexPath; - (CGFloat)spreadView:(MDSpreadView *)aSpreadView widthForColumnHeaderInSection:(NSInteger)columnSection; // pass 0 to hide header :
全体的に UITableView を列方向可変に拡張したような印象。
デモのソース
mochidev/MDSpreadViewDemo - GitHub