UIScrollView 滾動視圖

fb24 9年前發布 | 1K 次閱讀 Objective-C IOS

/////記得添加 代理 <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) {
      return nil;
    
    } for (UIView* view in scrollView.subviews) {
      if ([view isKindOfClass:[UIImageView class]]) {
          return view;
      }
    
    } return nil; }

//滑動調用,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>
 本文由用戶 fb24 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!