通过UIScrollView和UIPageControl结合制作相册

1、创建UIScrollView视图:

UIScrollView *aScrollView = [[[UIScrollView alloc] initWithFrame:self.view.bounds] autorelease];

aScrollView.backgroundColor = [UIColor redColor];

[self.view addSubview:aScrollView];

aScrollView.contentSize = CGSizeMake(CGRectGetWidth(aScrollView.bounds)*4, CGRectGetHeight(aScrollView.bounds));

aScrollView.pagingEnabled = YES;

aScrollView.delegate = self;

2、在aScrollView视图上添加4个scrollView(暂定有4张相片),给每一个scrollView添加一张图片:

NSArray *images = @[@"001.jpg",@"002.jpg",@"003.jpg",@"004.jpg"];

for (int i = 0; i < 4; i++) {

UIScrollView *scrollView = [[[UIScrollView alloc] initWithFrame:CGRectMake(CGRectGetWidth(aScrollView.bounds)*i, 0, CGRectGetWidth(aScrollView.bounds), CGRectGetHeight(aScrollView.bounds))] autorelease];

[aScrollView addSubview:scrollView];

scrollView.minimumZoomScale = 0.3;

scrollView.maximumZoomScale = 3;

scrollView.delegate = self;

scrollView.tag = 200 + i;

UIImage *image = [UIImage imageNamed:images[i]];

CGFloat width = CGRectGetWidth(aScrollView.bounds);

CGFloat height = width * image.size.height / image.size.width;

UIImageView *imageView = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, width, height)] autorelease];

[scrollView addSubview:imageView];

imageView.image = image;

imageView.center = CGPointMake(CGRectGetWidth(self.view.bounds) / 2, CGRectGetHeight(self.view.bounds) / 2);

imageView.tag =100 + i;

}

3、创建UIPageControl控件:

UIPageControl *pageControl = [[[UIPageControl alloc] initWithFrame:CGRectMake(0,    CGRectGetHeight(self.view.bounds)-80, CGRectGetWidth(self.view.bounds), 50)] autorelease];

[self.view addSubview:pageControl];

pageControl.numberOfPages = 4;

pageControl.currentPage = 0;

pageControl.currentPageIndicatorTintColor = [UIColor whiteColor];

pageControl.pageIndicatorTintColor = [UIColor lightGrayColor];

[pageControl addTarget:self action:@selector(handlePageAction:) forControlEvents:UIControlEventValueChanged];

4、实现UIScrollView视图和UIPageControl控件联动的方法:

- (void)handlePageAction:(UIPageControl *)sender{

CGPoint offset = CGPointZero;

offset.x = sender.currentPage * CGRectGetWidth(self.view.bounds);

for (id object in self.view.subviews) {

if ([object isKindOfClass:[UIScrollView class]]) {

[(UIScrollView *)object setContentOffset:offset animated:YES];

UIScrollView *scrollView = (UIScrollView *)[self.view viewWithTag:200+sender.tag];

scrollView.zoomScale = 1;

}

}

}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{

NSInteger index = scrollView.contentOffset.x / CGRectGetWidth(scrollView.bounds);

UIPageControl *pageControl = (UIPageControl *)[self.view viewWithTag:300];

UIScrollView *aScrollView = (UIScrollView *)[self.view viewWithTag:200+pageControl.currentPage];

aScrollView.zoomScale = 1;

for (id object in self.view.subviews) {

if ([object isKindOfClass:[UIPageControl class]]) {

[(UIPageControl *)object setCurrentPage:index];

}

}

}

5、实现相片的缩放功能:

- (void)scrollViewDidZoom:(UIScrollView *)scrollView{

for (int i = 0; i < 4; i++) {

UIImageView *imageView = (UIImageView *)[self.view viewWithTag:100+i];

CGFloat content_width = scrollView.contentSize.width;

CGFloat content_height = scrollView.contentSize.height;

CGFloat width = CGRectGetWidth(scrollView.bounds);

CGFloat height = CGRectGetHeight(scrollView.bounds);

CGFloat delta_x = width > content_width ? (width - content_width) / 2 : 0;

CGFloat delta_y = height > content_height ? (height - content_height)/2 : 0;

imageView.center = CGPointMake(content_width / 2 + delta_x, content_height / 2 + delta_y);

}

}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{

return [scrollView viewWithTag:scrollView.tag - 100];

}

时间: 2024-10-24 17:35:56

通过UIScrollView和UIPageControl结合制作相册的相关文章

UIScrollView 和UIPageControl 实现app启动滑动图

一.使用NSUserDefaults 判断滑动图有没有出现过,加载滑动图 NSUserDefaults 简介: NSUserDefaults可以将数据永久的保存在手机中,他是一个单例,用起来很方便,所以很适合用于保存简单的数据和为数据做标记 你可以选择在AppDelegate.m中的didFinishLaunchingWithOptions 方法或者"初始界面"(加载的第一个viewController)的 viewDidLoad 方法中进行判断滑动图是否出现过,写上代码: NSUse

UIScrollView和UIPageControl

UIScrollView和UIPageControl 一般配合使用 //创建一个滑动/滚动的视图,大小和当前视图大小一样(可以自定义大小)    UIScrollView *scrollView=[[UIScrollView alloc] initWithFrame:self.view.bounds];    //设置显示内容区域的大小,宽度是当前视图的6倍(可以自定义大小),    scrollView.contentSize=CGSizeMake(self.view.frame.size.w

Html 制作相册

本文主要讲述采用Html5+jQuery+CSS 制作相册的小小记录. 主要功能点: Html5进行布局 调用jQuery(借用官网的一句话:The Write Less, Do More)极大的简化了JavaScript编程 CSS 样式将表现与内容分离 话不多说,先上效果图: 代码如下: 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>The second html page</title> 5 &l

iOS基础——通过案例学知识之LaunchScreen、APPIcon、StatusBar、UIScrollView、UIPageControl

iOS基础--通过案例学知识之LaunchScreen.APPIcon.StatusBar.UIScrollView.UIPageControl 今天要实现的案例效果图 一.LaunchScreen 1.设置程序的LaunchScreen 在项目配置文件中配置启动页,并且在LaunchScreen.storyboard中进行布局 2.设置LaunchScreen时间 //单位:秒 [NSThread sleepForTimeInterval:1.5f]; 二.APPIcon 1.命名规则:iOS

使用UIScrollView和UIPageControl做一个能够用手势来切换图片的效果

利用UIScrollView的滚动效果来实现,先上图: 实现过程是:在viewController里先增加UIScrollView和UIPageControl: -(void) loadView { [super loadView]; UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320,480)]; UIPageControl* pageControl = [[UIPageCont

IOS 之 UIScrollView,UIPageControl

UIScrollView 可以用于显示多于一个屏幕的内容,超出屏幕范围的内容可以通过滑动进行查看,UIPageControl 类提供一行点来指示当前显示的是多页面视图的哪一页. 下面实现一个简单的图片自动播放器为例说说 UIScrollView 与 UIPageControl类中的一些方法. 注意:下述代码中的 scrollY,kScreenWidth,kScreenHeight,kImgCount 等都是定义好的常量 #define kScreenHeight [UIScreen mainSc

使用UIScrollView和UIPageControl做一个可以用手势来切换图片的效果

利用UIScrollView的滚动效果来实现,先上图: 实现过程是:在viewController里先加入UIScrollView和UIPageControl: -(void) loadView { [super loadView]; UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320,480)]; UIPageControl* pageControl = [[UIPageCont

UIScrollVIew和UIPageControl学习使用

概要 对于同一个页面需要展示很多图片信息.子视图等的这样的需求,我们可以采用控件UIScrollVIew,与之常常一起使用的控件是UIPageControl,UIScrollVIew里面可以存放多个子视图,通过设置页模式,以及子页面在UIScrollVIew的content位置,可以在滑动控件UIScrollVIew的时候切换子视图.为了交互友好,常常和控件UIPageControl一起使用,该控件是一组指示器,一般指示器个数对应于上述的子页面个数,通过改组指示器可以看到当前子页面的位置以及整个

[iOS]通过UIScrollView和UIPageControl实现滑动切换的效果

UIPageControl是自带的控件,可以查看官方文档,下载官方示例学习. 如果对Xcode自带的文档不熟悉可以参见:苹果Xcode帮助文档阅读指南 接下来是我学习笔记,使用Storyboard实现滑动切换的效果. ----------------------------------------------------------------------------- 新建一个项目,拖上一个UIScrollView和UIPageControl,并且建立关联: 新建一个ContentViewCo