iOS學習筆記——滾動視圖(scrollView),iosscrollview

來源:互聯網
上載者:User

iOS學習筆記——滾動視圖(scrollView),iosscrollview

滾動視圖:在根視圖中添加UIScrollViewDelegate協議,聲明一些對象屬性

@interface BoViewController : UIViewController<UIScrollViewDelegate>  //滾動視圖對象  @property (retain, nonatomic) UIScrollView *scrollView;  //視圖中小圓點,對應視圖的頁碼  @property (retain, nonatomic) UIPageControl *pageControl;  //動態數組對象,儲存圖片  @property (retain, nonatomic) NSMutableArray *images;  @end  /* 何問起 hovertree.com */

在程式中匯入圖片,在.m檔案中的代碼實現:

- (void)viewDidLoad  {      [super viewDidLoad];      //初始化scrollView      self.scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0, 320, 345)];      //初始化pageControl      self.pageControl = [[UIPageControl alloc]initWithFrame:CGRectMake(0, 344, 320, 36)];      //初始化數組,儲存滾動視圖的圖片      self.images = [NSMutableArray arrayWithObjects:[UIImage imageNamed:@"text1.png"],[UIImage imageNamed:@"text2.png"],[UIImage imageNamed:@"text3.png"],[UIImage imageNamed:@"text4.png"], nil nil];      //把scrollView與pageControl添加到當前視圖中      [self.view addSubview:self.scrollView];      [self.view addSubview:self.pageControl];      //設定視圖的背景顏色      self.view.backgroundColor = [UIColor blackColor];      //調用 setuoPage方法      [self setupPage:nil];     }  //改變滾動視圖的方法實現  - (void)setupPage:(id)sender  {      //設定委託      self.scrollView.delegate = self;      //設定背景顏色      self.scrollView.backgroundColor = [UIColor blackColor];      //設定取消觸摸      self.scrollView.canCancelContentTouches = NO;      //設定捲軸類型      self.scrollView.indicatorStyle = UIScrollViewIndicatorStyleWhite;      //是否自動裁切超出部分      self.scrollView.clipsToBounds = YES;      //設定是否可以縮放      self.scrollView.scrollEnabled = YES;      //設定是否可以進行畫面切換      self.scrollView.pagingEnabled = YES;      //設定在拖拽的時候是否鎖定其在水平或者垂直的方向      self.scrollView.directionalLockEnabled = NO;      //隱藏捲軸設定(水平、跟垂直方向)      self.scrollView.alwaysBounceHorizontal = NO;      self.scrollView.alwaysBounceVertical = NO;      self.scrollView.showsHorizontalScrollIndicator = NO;      self.scrollView.showsVerticalScrollIndicator = NO;      //用來記錄頁數      NSUInteger pages = 0;      //用來記錄scrollView的x座標      int originX = 0;          for(UIImage *image in self.images)      {          //建立一個視圖          UIImageView *pImageView = [[[UIImageView alloc]initWithFrame:CGRectZero]autorelease];          //設定視圖的背景色          pImageView.backgroundColor = [UIColor colorWithRed:0.6 green:0.6 blue:0.6 alpha:1.0];          //設定imageView的背景圖          [pImageView setImage:image];          //給imageView設定地區          CGRect rect = self.scrollView.frame;          rect.origin.x = originX;          rect.origin.y = 0;          rect.size.width = self.scrollView.frame.size.width;          rect.size.height = self.scrollView.frame.size.height;          pImageView.frame = rect;          //設定圖片內容的顯示模式(自適應模式)          pImageView.contentMode = UIViewContentModeScaleAspectFill;          //把視圖添加到當前的滾動視圖中          [self.scrollView addSubview:pImageView];          //下一張視圖的x座標:offset為:self.scrollView.frame.size.width.          originX += self.scrollView.frame.size.width;          //記錄scrollView內imageView的個數          pages++;      }      //設定頁碼控制器的回應程式法      [self.pageControl addTarget:self action:@selector(changePage:) forControlEvents:UIControlEventValueChanged];      //設定總頁數      self.pageControl.numberOfPages = pages;      //預設當前頁為第一頁      self.pageControl.currentPage = 0;      //為頁碼控制器設定標籤      self.pageControl.tag = 110;      //設定滾動視圖的位置      [self.scrollView setContentSize:CGSizeMake(originX, self.scrollView.bounds.size.height)];      }  //改變頁碼的方法實現  - (void)changePage:(id)sender  {      NSLog(@"指標的當前索引值為:%i",self.pageControl.currentPage);      //擷取當前視圖的頁碼      CGRect rect = self.scrollView.frame;      //設定視圖的橫座標,一幅圖為320*460,橫座標一次增加或減少320像素      rect.origin.x = self.pageControl.currentPage * self.scrollView.frame.size.width;      //設定視圖縱座標為0      rect.origin.y = 0;      //scrollView可視地區      [self.scrollView scrollRectToVisible:rect animated:YES];      }  #pragma mark-----UIScrollViewDelegate---------  //實現協議UIScrollViewDelegate的方法,必須實現的  - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView  {      //擷取當前視圖的寬度      CGFloat pageWith = scrollView.frame.size.width;      //根據scrolView的左右滑動,對pageCotrol的當前指標進行切換(設定currentPage)      int page = floor((scrollView.contentOffset.x - pageWith/2)/pageWith)+1;      //切換改變頁碼,小圓點      self.pageControl.currentPage = page;  }    - (void)didReceiveMemoryWarning  {      [super didReceiveMemoryWarning];      // Dispose of any resources that can be recreated.  }  //釋放建立的對象  - (void)dealloc  {      [_pageControl release];      [_scrollView release];      [super dealloc];  }  /* 何問起 hovertree.com */

推薦:http://www.cnblogs.com/roucheng/p/3528371.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.