UIScrollView 滾動視圖
/////記得添加 代理 <UIScrollViewDelegate>UIScrollView sv = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; [self.view addSubview:sv]; [sv release]; //常用屬性 //真正大小,在這里frame僅代表可視位置和范圍 sv.contentSize = CGSizeMake(320 17, 460 * 2); //偏移量,frame左上角頂點相對于contentView左上角頂點的偏移量 sv.contentOffset = CGPointMake(0, 0); //[sv setContentOffset: animated:] //分頁 sv.pagingEnabled = YES; //設置額外的空間 sv.contentInset = UIEdgeInsetsMake(0, 0, 0, 0); //鎖定方向,左右滑動和上下滑動不能同時進行 sv.directionalLockEnabled = YES; //反彈效果 sv.bounces = YES; //水平方向上保持反彈效果 sv.alwaysBounceHorizontal = YES; //垂直方向上保持反彈效果 sv.alwaysBounceVertical = YES; //開啟滑動 sv.scrollEnabled = YES; //隱藏水平狀態條 sv.showsHorizontalScrollIndicator = YES; //隱藏垂直狀態條 sv.showsVerticalScrollIndicator = YES; //狀態條位置 //sv.scrollIndicatorInsets = UIEdgeInsetsMake(100, 100, 100, 100); //狀態條類型 sv.indicatorStyle = UIScrollViewIndicatorStyleDefault; //減速速率 范圍0~1 sv.decelerationRate = 0.5; //delaysContentTouches //sv.delaysContentTouches = NO; sv.delegate = self; sv.tag = 10;
//添加內容 圖片 for (int i = 0; i < 17; i++) { UIScrollView* subSv = [[UIScrollView alloc] initWithFrame:CGRectMake(i * 320, 0, 320, 460)]; subSv.delegate = self; subSv.minimumZoomScale = 0.5; subSv.maximumZoomScale = 2.0; [sv addSubview:subSv]; [subSv release]; UIImageView* imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)]; imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"10_%d.jpg",i]]; [subSv addSubview:imageView]; [imageView release]; } //這個button 只顯示在第一張圖片上 UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; button.frame = CGRectMake(100, 100, 100, 40); button.backgroundColor = [UIColor yellowColor]; [sv addSubview:button]; [button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside]; ///事件 - (void)buttonClick{ NSLog(@"點擊了");
// UIScrollView sv = (UIScrollView)[self.view viewWithTag:10]; // [sv setContentOffset:CGPointMake(320 * 5, 0) animated:YES]; self.view.hidden=YES; }
//縮放
- (UIView )viewForZoomingInScrollView:(UIScrollView )scrollView{
if (scrollView.tag == 10) {
} for (UIView* view in scrollView.subviews) {return nil;
} return nil; }if ([view isKindOfClass:[UIImageView class]]) { return view; }
//滑動調用,contentOffSet發生偏移
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{ //int page = scrollView.contentOffset.x / 320; //NSLog(@"%d",page);
}
//將要開始拖拽
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView{ NSLog(@"將要開始拖拽"); }
//將要結束拖拽
- (void)scrollViewWillEndDragging:(UIScrollView )scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint )targetContentOffset{ NSLog(@"將要結束拖拽"); }
//結束拖拽
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ NSLog(@"結束拖拽 %d",decelerate); }
//將要開始減速
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{ NSLog(@"將要開始減速"); }
//結束減速
(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ NSLog(@"結束減速"); }
(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView{ NSLog(@"結束動畫"); }
(BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView{ NSLog(@"要滑動到頂部"); return YES; }
(void)scrollViewDidScrollToTop:(UIScrollView *)scrollView{ NSLog(@"已經滑動到頂部"); }
//將要開始縮放
- (void)scrollViewWillBeginZooming:(UIScrollView )scrollView withView:(UIView )view{ NSLog(@"開始縮放"); }
//正在縮放
- (void)scrollViewDidZoom:(UIScrollView *)scrollView{ NSLog(@"縮放中"); }
//結束縮放
- (void)scrollViewDidEndZooming:(UIScrollView )scrollView withView:(UIView )view atScale:(float)scale{
NSLog(@"縮放結束:%f",scrollView.zoomScale);
}</pre>