UIScrollView的简单例子
来源:互联网 发布:爱心公益活动网站知乎 编辑:程序博客网 时间:2024/05/29 10:25
MyScrollView.h
- #import <UIKit/UIKit.h>
- @interface MyScrollView : UIScrollView <UIScrollViewDelegate> {
- UIImage *image;
- UIImageView *imageView;
- }
- @property (nonatomic, retain) UIImage *image;
- @end
MyScrollView.m
- #import "MyScrollView.h"
- @implementation MyScrollView
- @synthesize image;
- - (id)initWithFrame:(CGRect)frame {
- if ((self = [super initWithFrame:frame])) {
- self.delegate = self;
- self.minimumZoomScale = 0.5;
- self.maximumZoomScale = 2.5;
- self.showsVerticalScrollIndicator = NO;
- self.showsHorizontalScrollIndicator = NO;
- imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
- imageView.contentMode = UIViewContentModeCenter;
- [self addSubview:imageView];
- }
- return self;
- }
- - (void)setImage:(UIImage *)img {
- imageView.image = img;
- }
- - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
- return imageView;
- }
- - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale {
- CGFloat zs = scrollView.zoomScale;
- zs = MAX(zs, 1.0);
- zs = MIN(zs, 2.0);
- [UIView beginAnimations:nil context:NULL];
- [UIView setAnimationDuration:0.3];
- scrollView.zoomScale = zs;
- [UIView commitAnimations];
- }
- - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
- UITouch *touch = [touches anyObject];
- if ([touch tapCount] == 2) {
- CGFloat zs = self.zoomScale;
- zs = (zs == 1.0) ? 2.0 : 1.0;
- [UIView beginAnimations:nil context:NULL];
- [UIView setAnimationDuration:0.3];
- self.zoomScale = zs;
- [UIView commitAnimations];
- }
- }
- - (void)dealloc {
- [image release];
- [imageView release];
- [super dealloc];
- }
- @end
- #import "MyScrollView.h"
- @interface MainViewController : UIViewController <UIScrollViewDelegate> {
- IBOutlet UIScrollView *scrView;
- NSInteger lastPage;
- }
- @end
MainViewController.m
- #import "MainViewController.h"
- @implementation MainViewController
- - (void)viewDidLoad {
- [super viewDidLoad];
- self.view.backgroundColor = [UIColor blackColor];
- scrView.contentSize = CGSizeMake(1700, 480);
- scrView.showsHorizontalScrollIndicator = NO;
- for (int i = 0; i < 5; i++) {
- MyScrollView *ascrView = [[MyScrollView alloc] initWithFrame:CGRectMake(340 * i, 0, 320, 480)];
- NSString *imgPath = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%d", i + 1] ofType:@"jpg"];
- ascrView.image = [UIImage imageWithContentsOfFile:imgPath];
- ascrView.tag = 100 + i;
- [scrView addSubview:ascrView];
- [ascrView release];
- }
- lastPage = 0;
- }
- //划动的动画结束后调用
- - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
- CGFloat pageWidth = scrollView.frame.size.width;
- NSInteger page = floor((scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
- if (lastPage != page) {
- MyScrollView *aView = (MyScrollView *)[scrView viewWithTag:100 + lastPage];
- aView.zoomScale = 1.0;
- lastPage = page;
- }
- }
- - (void)didReceiveMemoryWarning {
- [super didReceiveMemoryWarning];
- }
- - (void)viewDidUnload {
- scrView = nil;
- }
- - (void)dealloc {
- [scrView release];
- [super dealloc];
- }
- @end
- UIScrollView的简单例子
- UIScrollview + UIPageControl 实现简单例子
- UIScrollView的简单使用
- UIScrollView的简单使用
- UIScrollView的简单使用
- UIScrollView的简单使用
- UIScrollView的 简单用法
- UIScrollView的简单介绍
- UIScrollView的简单使用
- iOS开发 UIScrollView自带的缩放功能(简单的例子)
- iOS UIScrollView的简单使用
- UIPageControl+UIScrollView的简单使用
- UIScrollView的简单用法总结
- 简单的UIScrollView循环滑动
- iOS UIScrollView 和 UIPageControl的简单使用
- UIScrollView的基本用法和简单示例
- UIScrollView -------- 实现简单的相册功能
- 继承UIView实现的简单UIScrollView
- 拓扑排序题集
- hdu-1052 Tian Ji -- The Horse Racing
- 错排详解及应用
- Windows CE下操作GPIO的方法(以ARM9 S3C2410为例)(转)
- WinCE中串口驱动及接口函数介绍
- UIScrollView的简单例子
- WINCE很好用的字符转换函数
- 插入排序的实现
- 关于浮点数和IEEE754的理解
- WinCE5.0定制支持Intel 82559网卡
- java命名方法
- CE驱动大全二
- 问题一百零九:正整数解(2)
- CE驱动大全 一