ios scrollView中增加动画效果,自动滚动UIScrollView,利用了NSTimer

来源:互联网 发布:java 获取jar包内文件 编辑:程序博客网 时间:2024/05/21 06:56
在类的申明文件(.h)里添加对Page控制器的申明:
@property (strong, nonatomic) IBOutlet UIPageControl *page;@property (strong, nonatomic) IBOutlet UIScrollView *imageScrollView;
然后在实现文件(.m)里添加 对page对象的
@synthesize page;@synthesize imageScrollView;
实现page对象的自动存取器。
改写viewDidLoad方法如下
- (void)viewDidLoad{    [super viewDidLoad];    //这里定义了滚动视图的大小,是否支持翻页,是否显示水平滚动标示,委托对象是哪个    imageScrollView.contentSize = CGSizeMake(PAGENUM * 320.0f, imageScrollView.frame.size.height);    imageScrollView.pagingEnabled = YES;    imageScrollView.showsHorizontalScrollIndicator = NO;    imageScrollView.delegate = self;    //这里为滚动视图添加了子视图,为了能添加后续操作,我这里定义的子视图是按键UIButton    for (int i = 0; i < PAGENUM; i++) {        NSString * fileName = [NSString stringWithFormat:@"%d.jpg",i+1];        UIButton *imageButton = [[UIButton alloc] initWithFrame:CGRectMake(i * 320.0f,  0.0f, 320.0f, 218.0f)];        [imageButton setBackgroundImage:[UIImage imageNamed:fileName] forState:UIControlStateNormal];        imageButton.tag = 900 + i;        [imageScrollView addSubview:imageButton];    }    //定义PageController 设定总页数,当前页,定义当控件被用户操作时,要触发的动作。   �0�2page.numberOfPages = PAGENUM;    page.currentPage = 0;    [page addTarget:self action:@selector(pageTurn:) forControlEvents:UIControlEventValueChanged];    //使用NSTimer实现定时触发滚动控件滚动的动作。    timeCount = 0;    [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(scrollTimer) userInfo:nil repeats:YES];}
增加两个翻页动画和自动翻页的函数
//滚图的动画效果-(void)pageTurn:(UIPageControl *)aPageControl{    int whichPage = aPageControl.currentPage;    [UIView beginAnimations:nil context:NULL];    [UIView setAnimationDuration:0.3f];    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];    [imageScrollView setContentOffset:CGPointMake(320.0f * whichPage, 0.0f) animated:YES];    [UIView commitAnimations];}//定时滚动-(void)scrollTimer{    timeCount ++;    if (timeCount == PAGENUM) {        timeCount = 0;    }    [imageScrollView scrollRectToVisible:CGRectMake(timeCount * 320.0, 65.0, 320.0, 218.0) animated:YES];}

原创粉丝点击