UIScrollView和UIPageControl配合使用
- (void )viewDidLoad
{
[super viewDidLoad];
self .view .backgroundColor = [UIColor grayColor];
self .userGuideScrollView = [[[UIScrollView alloc] initWithFrame:CGRectMake(0 ,0 , self .view .frame .size .width , self .view .frame .size .height )] autorelease];
self .userGuideScrollView .contentSize = CGSizeMake(self .view .frame .size .width * 11 , self .view .frame .size .height );
_userGuideScrollView.pagingEnabled = YES ;
_userGuideScrollView.delegate = self ;
_userGuideScrollView.userInteractionEnabled = YES ;
_userGuideScrollView.showsHorizontalScrollIndicator = YES ;
for (int i = 1 ; i <= 11 ; i++) {
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImageimageNamed:[NSString stringWithFormat:@"image%d" , i]]];
imageView.frame = CGRectMake((i - 1 ) * self .view .frame .size .width , 0 ,self .view .frame .size .width , self .view .frame .size .height );
[_userGuideScrollView addSubview:imageView];
[imageView release], imageView = nil ;
}
[self .view addSubview:_userGuideScrollView];
self .scrollPageControl = [[[UIPageControl alloc] init] autorelease];
_scrollPageControl.frame = CGRectMake(0 , self .view .frame .size .height - 60 ,self .view .frame .size .width , 30 );
_scrollPageControl.numberOfPages = 11 ;
_scrollPageControl.currentPage = 0 ;
_scrollPageControl.pageIndicatorTintColor = [UIColor blueColor];
_scrollPageControl.currentPageIndicatorTintColor = [UIColor yellowColor];
[_scrollPageControl addTarget:self action:@selector (scrollPageControlAction:)forControlEvents:UIControlEventValueChanged];
_scrollPageControl.highlighted = YES ;
[self .view addSubview:_scrollPageControl];
}
- (void )didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
#pragma mark - 实现---scrollPageControlAction:监听事件
- (void )scrollPageControlAction:(UIPageControl *) sender {
CGSize viewSize = _userGuideScrollView.frame .size ;
CGRect rect = CGRectMake(sender.currentPage * viewSize.width , 0 , viewSize.width , viewSize.height );
[_userGuideScrollView scrollRectToVisible:rect animated:YES ];
}
#pragma mark - 重写----scrollViewDelegate中的代理方法 实现滑动
-(void )scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
int index = abs(scrollView.contentOffset .x / scrollView.frame .size .width );
_scrollPageControl.currentPage = index;
}
#pragma mark - 重写----dealloc方法
- (void )dealloc {
[_scrollPageControl release], _scrollPageControl = nil ;
[_userGuideScrollView release], _userGuideScrollView = nil ;
[super dealloc];
}
@end