Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在我的应用程序中使用UIPageControl?_Ios_Uiscrollview_Uipagecontrol - Fatal编程技术网

Ios 如何在我的应用程序中使用UIPageControl?

Ios 如何在我的应用程序中使用UIPageControl?,ios,uiscrollview,uipagecontrol,Ios,Uiscrollview,Uipagecontrol,我正在制作一个应用程序,我需要一些图像可以使用UIPageControl滚动。遗憾的是,我不知道如何使用UIPageControl或UIScrollView。如果您能链接到YouTube视频或苹果的Xcode文档,我们将不胜感激 提前谢谢 这里有一个代码可以帮助您 CGSize size = [[UIScreen mainScreen] bounds].size; CGFloat frameX = size.width; CGFloat frameY = size.height-30; /

我正在制作一个应用程序,我需要一些图像可以使用UIPageControl滚动。遗憾的是,我不知道如何使用UIPageControl或UIScrollView。如果您能链接到YouTube视频或苹果的Xcode文档,我们将不胜感激


提前谢谢

这里有一个代码可以帮助您

 CGSize size = [[UIScreen mainScreen] bounds].size;
 CGFloat frameX = size.width;
 CGFloat frameY = size.height-30; //padding for UIpageControl

 UIScrollView  *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(offsetX, offsetY, frameX, frameY)];
 scrollView.pagingEnabled = YES;

scrollView.backgroundColor = [UIColor clearColor];
scrollView.contentSize = CGSizeMake(frameX, frameY);


[self.view addSubview: scrollView];
//假设在imageArray中有一个图像数组

for(int i = 0; i < [imageArray]; i++)
{
   UIImage *image = [UIImage imageNamed:[imageArray objectAtIndex:i]];
   imageView = [[UIImageView alloc] initWithImage:image];
   imageView.frame = CGRectMake(frameX * i, 0.0, frameX, frameY);
   [scrollView addSubview:imageView];
}

scrollView.contentSize = CGSizeMake(frameX*[imageArray count], frameY); 

其中pageControl是UIPageControl添加到viewcontroller底部的

这是Ray Wenderlich团队关于如何设置分页滚动视图的一个非常好的教程:

苹果的文档中还有一个如何实现分页滚动视图的示例:


到也可能对您有用。

滚动视图:

ScrollView用于显示更多数量的视图/对象。我们可以通过水平或垂直滚动显示这些视图。 您可以处理缩放、平移、滚动等操作

您可以浏览其中一些教程

Scrollview的示例代码:

UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0,self.view.frame.size.width, self.view.frame.size.height)];
//This will create a scrollview of device screen frame
您可以通过以下方式启用滚动:

    scroll.scrollEnabled = YES;
向scrollview添加3个视图的示例

 NSInteger numberOfViews = 3;
 for (int i = 0; i < numberOfViews; i++) {
      CGFloat xOrigin = i * self.view.frame.size.width;
      UIView *awesomeView = [[UIView alloc] initWithFrame:CGRectMake(xOrigin, 0, self.view.frame.size.width, self.view.frame.size.height)];
      awesomeView.backgroundColor = [UIColor colorWithRed:0.5/i green:0.5 blue:0.5 alpha:1];
      [scroll addSubview:awesomeView];
      [awesomeView release];
 }
 // 3 views added horizontally to the scrollview by using xOrigin.
contentSize只是三个UIView宽度的总和,如果每个UIView的宽度为320,并且我们有三个UIView,则contentSize宽度将为920

[self.view addSubview:scroll];
[scroll release];
//Add scrollview to viewcontroller
页面控件: 页面控件向用户显示一组表示页面的水平点。当前页面显示为白点。用户可以从当前页面转到下一页或上一页

要启用分页,您需要添加

scroll.pagingEnabled = YES;
 pageControl = [[UIPageControl alloc] init]; //SET a property of UIPageControl
pageControl.frame = CGRectMake(100,self.view.frame.size.height-100,self.view.frame.size.width-200,100); 
pageControl.numberOfPages = 3; //as we added 3 diff views 
pageControl.currentPage = 0; 
添加scrollview的委托方法,实现滚动时的页面控制点

  - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
          CGFloat pageWidth = self.scrollView.frame.size.width;
          int page = floor((self.scrollView.contentOffset.x – pageWidth / 2 ) / pageWidth) + 1; //this provide you the page number
          pageControl.currentPage = page;// this displays the white dot as current page
   }
现在您可以看到scrollview的pagecontrol。希望你能理解。也参考这个

@CppiLove:请不要担心我没有编译代码。将出现语法错误,但我的目的是向您解释如何将UIScrollView与UIPageControl一起使用@Cintu的答案是正确的,但
pageControl
会产生页面设置的不良动画,最好是在
ScrollViewDiEndDeceling
中设置
currentPage
scroll.pagingEnabled = YES;
 pageControl = [[UIPageControl alloc] init]; //SET a property of UIPageControl
pageControl.frame = CGRectMake(100,self.view.frame.size.height-100,self.view.frame.size.width-200,100); 
pageControl.numberOfPages = 3; //as we added 3 diff views 
pageControl.currentPage = 0; 
  - (void)scrollViewDidScroll:(UIScrollView *)scrollView {
          CGFloat pageWidth = self.scrollView.frame.size.width;
          int page = floor((self.scrollView.contentOffset.x – pageWidth / 2 ) / pageWidth) + 1; //this provide you the page number
          pageControl.currentPage = page;// this displays the white dot as current page
   }