浅析iPhone SDK开发基础之OpenFlow编程

移动开发 iOS
iPhone SDK开发基础之OpenFlow编程是本文要将诶少的内容,当用户界面需要按页面显示图片时,使用OpenFlow库提供的功能,将要显示的用户界面图片分页进行显示会使编程工作变得非常快捷。

iPhone SDK开发基础之OpenFlow编程是本文要将诶少的内容,当用户界面需要按页面显示图片时,使用OpenFlow库提供的功能,将要显示的用户界面图片分页进行显示会使编程工作变得非常快捷。该库提供了与OS X桌面Finder程序相同的视觉效果,如图3-46所示就是一个使用OpenFlow库逐页进行图片显示的程序,用户按下屏幕即可进行左右滚动显示,双击图片即可对当前显示的图片进行选取操作,如图:

iPhone SDK开发基础之OpenFlow编程

程序在视图控制器的viewDidAppear()中使用refreshCoverFlow()函数初始化OpenFlow库,通过setNumberOfImages()函数设置图片数量,代码如下。

  1. //  RootViewController.m  
  2. - (void)refreshCoverFlow{  
  3.     
  4.  CGRect bounds = [[UIScreen mainScreen] bounds];  
  5.  AFOpenFlowView *coverFlowView = (AFOpenFlowView*)[self.view viewWithTag:kTagCoverflow];  
  6.  if(coverFlowView != nil)  
  7.     [coverFlowView removeFromSuperview];   
  8.  coverFlowView = [[AFOpenFlowView alloc] initWithFrame:CGRectMake(0, -30, bounds.size.width, COVERFLOWHEIGHT)];  
  9.  coverFlowView.dataSource = self;  
  10.  coverFlowView.viewDelegate = self;  
  11.  coverFlowView.defaultImage = [self defaultImage];  
  12.  coverFlowView.tag = kTagCoverflow;  
  13.  [self.view addSubview:coverFlowView];  
  14.  
  15.     NSInteger count = [self numberOfAnimals];  
  16.  [coverFlowView setNumberOfImages:count];  
  17.  //...  
  18.  [coverFlowView release];  

并在loadView()中初始化图片,将图片从资源中加载并保存在一个NSMutableArray类型的变量imageArray中,代码如下。

  1. - (BOOL)doAddAnimal:(NSString *)name Image:(NSString *)imageName{  
  2.    
  3.  UIImage *image = [UIImage imageNamed: imageName];  
  4.  if(image == nil) return FALSE;  
  5.  CGSize size  = CGSizeMake(179, 208);  
  6.  [imageArray addObject:[self resizeImage:image scaledToSize:size]];  
  7.  return TRUE;   

在OpenFlow库的requestImageForIndex delegate方法中直接通过NSMutableArray的索引作为OpenFlow库的图片索引,并通过该索引设置和获取具体图片,代码如下。

  1. //  PageViewController.m  
  2. - (void)openFlowView:(AFOpenFlowView *)openFlowView requestImageForIndex: (int)index{  
  3.      UIImage *image =  [imageArray objectAtIndex:index];  
  4.   [openFlowView setImage:image forIndex:index];  

笔者在OpenFlow库AFOpenFlowView.m文件的touchesEnded()函数中增加了双击回调接口,以便在用户双击图片时通知库的调用者,代码如下。

  1. //AFOpenFlowView.m  
  2. - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {  
  3.  if(((UITouch *)[touches anyObject]).tapCount == 2){  
  4.       if ([self.viewDelegate respondsToSelector:@selector(openFlowView: coverViewDoubleClick:)])  
  5.    [self.viewDelegate openFlowView:self coverViewDoubleClick: selectedCoverView.number];  
  6.     }   
  7.     [super touchesEnded:touches withEvent:event];   

库的调用者RootViewController类通过接口函数coverViewDoubleClick()即可处理用户双击事件,代码如下。

  1. - (void)openFlowView:(AFOpenFlowView *)openFlowView coverViewDoubleClick:(int)index{  
  2.   NSLog(@"coverViewDoubleClick called!");  
  3.   [self showPaintingViewController]; 

小结:浅析iPhone SDK开发基础之OpenFlow编程的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 博客园
相关推荐

2011-08-18 09:52:13

iPhone SDKUIPageContr

2011-07-18 09:35:29

iPhone 框架

2011-08-18 09:44:33

iPhone SDK仪表控件UIDialView

2011-07-18 14:39:53

iPhone SDK UIKit

2011-07-06 17:53:40

iPhone SDK Xcode

2011-07-06 17:40:43

iPhone SDK

2011-08-02 13:46:43

iPhone开发 iPhone SDK

2011-07-22 18:25:20

XCode iPhone SDK

2015-07-15 15:24:25

OpenFlowSDN

2011-08-01 18:27:58

iPhone开发 UISearchBa

2011-08-10 10:10:21

iPhoneUIPopoverCo

2010-12-10 13:57:45

PHP Extensi

2009-08-06 09:18:01

ASP.NET自定义控ASP.NET控件开发

2011-05-31 14:03:13

2011-08-12 13:19:24

iPhoneSDK安装

2009-07-02 10:51:21

脚本编程JSP开发

2011-08-08 13:57:19

iPhone开发 打包 DEB

2011-08-11 10:03:43

iPhonecocoaNSRunLoop

2009-08-21 17:19:36

C#网络编程入门

2011-07-05 17:19:47

元编程
点赞
收藏

51CTO技术栈公众号