用UIScrollView和UIPageControl简单模拟相册功能
来源:互联网 发布:我爱你用网络语言表达 编辑:程序博客网 时间:2024/04/28 01:29
用一个大的UIScrollView里放一些小的UIScrollView,小的UIScrollView里面放UIImageView来显示图片,切换图片的时候通过UIPageControl来显示的图片的位置,通过切换页也可以切换图片
1.UIScrollView
用到的属性
@property(nonatomic) CGPoint contentOffset; // default CGPointZero 偏移
@property(nonatomic) CGSize contentSize; // default CGSizeZero 可以滚动的区域
@property(nonatomic) BOOL bounces; // default YES. if YES, bounces past edge of content and back again 到边缘之后是否可以拖动
@property(nonatomic,assign)id<UIScrollViewDelegate> delegate; // default nil. weak reference 协议代理
用到的代理方法
- (void)scrollViewDidScroll:(UIScrollView *)scrollView; // any offset changes 滚动发生
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView; // return a view that will be scaled. if delegate returns nil, nothing happens 得到正在放大的视图
2,UIPageControl
用到的属性
@property(nonatomic)NSInteger numberOfPages; // default is 0 页数
@property(nonatomic)NSInteger currentPage; // default is 0. value pinned to 0..numberOfPages-1 当前页
3.简单实现
.h中添加两个属性或成员
{
UIScrollView *_scrollView;
UIPageControl *_pageControl;
}
.m中
- (void)viewDidLoad
{
[superviewDidLoad];
// Do any additional setup after loading the view.
_scrollView=[[UIScrollViewalloc]initWithFrame:CGRectMake(0,20,320,180)];
[_scrollViewsetBackgroundColor:[UIColorgrayColor]];
[_scrollViewsetMaximumZoomScale:4.0f];//放大比例
[_scrollViewsetMinimumZoomScale:0.1f];//缩小比例
[_scrollViewsetShowsVerticalScrollIndicator:false];//隐藏滑动指示器
[_scrollViewsetBounces:NO];//到边缘之后是否可以持续拉动的效果
[_scrollViewsetContentSize:CGSizeMake(2880 ,0)];//大小
_scrollView.delegate=self;//设置代理人
[_scrollViewsetPagingEnabled:YES];//每次拖动,总是拖到新一页
[_scrollViewsetContentOffset:CGPointMake(640,0)];
//添加图片
for (int i=1; i<10; i++) {
UIScrollView *scrollView=[[UIScrollViewalloc]initWithFrame:CGRectMake(i*320-320,0,320,180)];
//创建子滚动视图
NSString *str=[NSStringstringWithFormat:@"%d.jpg",i];
UIImageView *imageView=[[UIImageViewalloc]initWithImage:[UIImageimageNamed:str]];
//创建imageView添加到子滚动视图
[imageView setFrame:CGRectMake(0,0,320,180)];
[scrollView addSubview:imageView];
[imageView release];
scrollView.delegate=self;//给子滚动视图添加代理
[scrollView setMaximumZoomScale:1.5f];
[scrollView setMinimumZoomScale:0.1f];
[_scrollView addSubview:scrollView];//子滚动视图添加到大的滚动视图上面
[scrollView release];
}
//添加页控制
_pageControl=[[UIPageControlalloc]initWithFrame:CGRectMake(0,240,320,40 )];
[_pageControlsetBackgroundColor:[UIColorgrayColor]];
[_pageControladdTarget:selfaction:@selector(pageControlAction:)forControlEvents:UIControlEventValueChanged];
[_pageControlsetNumberOfPages:9];
[_pageControlsetPageIndicatorTintColor:[UIColorredColor]];
[self.viewaddSubview:_pageControl];
[_pageControl release];
[self.viewaddSubview:_scrollView];
[_scrollView release];
}
//得到当前要放大的视图
-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
NSArray *viewArr=[scrollView subviews];//得到子视图
return [viewArr objectAtIndex:0];
}
//页切换动作,换到下一张图片
-(void)pageControlAction:(id)sender
{
if ([sender isKindOfClass:[UIPageControlclass]]) {
UIPageControl *pagecontrol=(UIPageControl *)sender;
NSLog(@"%d",pagecontrol.currentPage);
//每次切换到下一张的时候,让它显示原来的比例
UIScrollView *scrollView=[[_scrollViewsubviews]objectAtIndex:pagecontrol.currentPage];
[scrollView setZoomScale:1.0];
[_scrollView setContentOffset:CGPointMake(320*pagecontrol.currentPage,0 )];
}
}
//滚动动作发生
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
NSLog(@"滚动发生");
NSLog(@"content offset=%@",NSStringFromCGPoint(scrollView.contentOffset));
int page=scrollView.contentOffset.x/320;
[_pageControlsetCurrentPage:page];
NSLog(@"page=%d",page);
}
效果图
- 用UIScrollView和UIPageControl简单模拟相册功能
- [iOS]UIScrollView 与 UIPageControl实现简单相册功能
- 用UIScrollView和UIPageControl制作相册基本方法
- UI开发----UIScrollView和UIPageControl简单模拟滚动视图
- UIScrollView和UIPageControl 实现的滚动相册以及照片缩放和还原功能
- UI一揽子计划 7 ( UIScrollView、 UIPageControl、综合所学简单相册)
- DCIM 用 UIScrollView 和UIPageControl
- 10.5 UIScrollview概念和用法:实现简单的相册功能
- iOS UIScrollView 和 UIPageControl的简单使用
- iOS --- UIScrollView和UIPageControl的简单使用
- 使用UIScrollView和UIPageControl实现一个简单的图片浏览功能
- 使用UIScrollView和UIPageControl实现一个简单的图片浏览功能
- UIScrollView -------- 实现简单的相册功能
- UIday0703:用 UIScrollView 和 UIPageControl 实现轮播图
- uiscrollview和uipagecontrol组合
- UIScrollView 和UIPageControl
- UIScrollView和UIPageControl
- UI - UIScrollView和UIPageControl
- 安装Adobe Flash Player:
- 一个c++多重继承的例子
- Deferred Procedure Call Details(延迟过程调用详解)
- 局域网ip扫描器c语言多线程 linux版
- dm Server project moves to Eclipse.org
- 用UIScrollView和UIPageControl简单模拟相册功能
- iOSOpenDev环境搭建以及使用
- 文件监控(一) 处理结构(pthread)
- servlet是单例的 所以需要线程安全 以及如何实现线程安全
- Android 界面滑动实现---Scroller类 从源码和开发文档中学习(让你的布局动起来)
- android sqllte增删改查
- 安装linux版myeclipse
- 套接字发送结构体
- Poj3301 三分法解题报告