iOS - 滾動檢視



滾動檢視的使用

滾動檢視用於顯示大小超過螢幕的內容。它可以包含所有其他 UI 元素,如圖片檢視、標籤、文字檢視甚至另一個滾動檢視本身。

重要屬性

  • contentSize
  • contentInset
  • contentOffset
  • delegate

重要方法

- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated

重要委託方法

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView
willDecelerate:(BOOL)decelerate
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

照如下方式更新 ViewController.h−

透過新增 < UIScrollViewDelegate> 並宣告一個滾動檢視例項(如下所示在 ViewController.h 中展示)使你的類符合滾動檢視委託協議。

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UIScrollViewDelegate> {
   UIScrollView *myScrollView;
}	
@end

新增自定義方法 addScrollView

-(void)addScrollView {
   myScrollView = [[UIScrollView alloc]initWithFrame:
   CGRectMake(20, 20, 280, 420)];
   myScrollView.accessibilityActivationPoint = CGPointMake(100, 100);
   imgView = [[UIImageView alloc]initWithImage:
   [UIImage imageNamed:@"AppleUSA.jpg"]];
   [myScrollView addSubview:imgView];
   myScrollView.minimumZoomScale = 0.5;
   myScrollView.maximumZoomScale = 3;
   myScrollView.contentSize = CGSizeMake(imgView.frame.size.width,
   imgView.frame.size.height);
   myScrollView.delegate = self;
   [self.view addSubview:myScrollView];
}

注意

我們必須將一張名為"AppleUSA1.jpg"的圖片新增到我們的專案中,可以將圖片拖到導航器區域(列出了我們的專案檔案),圖片的解析度應高於裝置以檢視影像的滾動。

在 ViewController.m 中實現 scrollView 委託

-(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
   return imgView;
}

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
   NSLog(@"Did end decelerating");
}	

-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
   // NSLog(@"Did scroll");
}

-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView 
   willDecelerate:(BOOL)decelerate {
   NSLog(@"Did end dragging");
}

-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
   NSLog(@"Did begin decelerating");
}

-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
   NSLog(@"Did begin dragging");
}

照如下方式在 ViewController.m 中更新 viewDidLoad−

(void)viewDidLoad {
   [super viewDidLoad];
   [self addScrollView];
   //Do any additional setup after loading the view, typically from a nib
}

輸出

執行應用程式後,我們將獲得以下輸出。滾動滾動檢視後,即可看到影像的其餘部分。

iOS Tutorial
ios_ui_elements.htm
廣告