代码改变世界

OpenFlow具体使用经验与扩展

2012-01-06 11:01  张智清  阅读(1476)  评论(0编辑  收藏  举报

利用OpenFlow开源库开发CoverFlow图片展示效果比较方便,谁让苹果不让我们用其私有API!OpenFlow开源库导入到具体工程项目中的基本方法是:

1.首先这个还是基于view-base项目模板;
2.添加OpenFlow类库文件到类里,以及添加QuartzCore.framework和CoreGraphics.framework;
3.在视图controller类里添加AFOpenFlowView.h引用,还要遵循两个协议<AFOpenFlowViewDataSource,AFOpenFlowViewDelegate>。
4.更改XIB文件里的UIView父类为AFOpenFlowView;
5.连接DataSoure,delegate并写好相应的方法;
6.添加图片,显示示图。
相关注意要点:
1. OpenFlow是要放在一个UIView上的。
2. 若要占部分屏幕:要在上面再放一个View来显示那个CoverFlow,这样位置和大小就能定。
3. 可[self.view addSubview:mAFOpenFlowView];添加CoverFlow视图,而控件还可再添加到它上面。
4. 某些情形下,必须显式设置delegate和datasource属性。

一些修改扩展:
修改AFOpenFlowView类实现点击图片触发事件

// AFOpenFlowView.h
@protocol AFOpenFlowViewDelegate <NSObject>
@optional
- (void)openFlowView:(AFOpenFlowView *)openFlowView selectionDidChange:(int)index;
@end

// 修改为以下代码
@protocol AFOpenFlowViewDelegate <NSObject>
@optional
- (void)openFlowView:(AFOpenFlowView *)openFlowView selectionDidChange:(int)index;
- (void)openFlowView:(AFOpenFlowView *)openFlowView singleTaped:(int)index;
@end
// AFOpenFlowView.m内的touchesEnded方法内以下代码
if (targetCover && (targetCover.number != selectedCoverView.number)) [self setSelectedCover:targetCover.number];

//修改为
if (targetCover) { if(targetCover.number != selectedCoverView.number) { [self setSelectedCover:targetCover.number]; } else { if([self.viewDelegate respondsToSelector:@selector(openFlowView:singleTaped:)]) { [self.viewDelegate openFlowView:self singleTaped:selectedCoverView.number]; return; } } }