Ios 是否可以在UIScrollView上放置UIPageControl?

Ios 是否可以在UIScrollView上放置UIPageControl?,ios,iphone,xcode,Ios,Iphone,Xcode,你好,我整天都在绞尽脑汁。我有大约5个月的iOS经验。我试图做的是将UIPageControl视图置于UIScrollView之上。这是我的密码 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. //self.scrollView = [[UIScrollView alloc] initWithFrame:[[

你好,我整天都在绞尽脑汁。我有大约5个月的iOS经验。我试图做的是将
UIPageControl
视图置于
UIScrollView
之上。这是我的密码

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    //self.scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0,[self window_width], [self window_height])];
    [self.scrollView setContentSize:CGSizeMake([self window_width], [self window_height])];
    [self.scrollView setPagingEnabled:YES];
    [self.scrollView setScrollEnabled:YES];
    [self.scrollView setShowsHorizontalScrollIndicator:NO];
    [self.scrollView setShowsVerticalScrollIndicator:NO];
    [self.scrollView setDelegate:self];

    self.pageControl = [[FXPageControl alloc] initWithFrame:CGRectMake(0, 0, [self window_width], [self window_height])];
    self.pageControl.dotShape = FXPageControlDotShapeCircle;
    self.pageControl.selectedDotShape = FXPageControlDotShapeCircle;
    self.pageControl.numberOfPages = [self.childViewControllers count];
    self.pageControl.selectedDotSize = 30.0;
    self.pageControl.dotSize = 30.0;
    self.pageControl.defersCurrentPageDisplay = YES;
    self.pageControl.dotSpacing = 50.0;
    self.pageControl.backgroundColor = [UIColor whiteColor];

    [self.view addSubview:self.pageControl];
    [self.view addSubview:self.scrollView];
}

我试着在
pageControl
上交换添加
ScrollView
子视图,结果
ScrollView
消失了

您可以将视图空间分别划分为pageview和scrollview,也可以在scroll视图中添加pageview控制器并调整scrollview的内容高度


您的视图相互重叠。

您可以通过以下代码将UIScrollView上方的UIPageControl添加到self.view中

- (void)viewDidLoad {
 [super viewDidLoad];
 // Do any additional setup after loading the view from its nib.
 //self.scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
 self.scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, [self window_width], [self window_height])];
 [self.scrollView setContentSize:CGSizeMake([self window_width], [self window_height])];
  [self.scrollView setPagingEnabled:YES];
  [self.scrollView setScrollEnabled:YES];
  [self.scrollView setShowsHorizontalScrollIndicator:NO];
  [self.scrollView setShowsVerticalScrollIndicator:NO];
  [self.scrollView setDelegate:self];

  self.pageControl = [[FXPageControl alloc] initWithFrame:CGRectMake(0, 0, [self window_width], [self window_height])];
  self.pageControl.dotShape = FXPageControlDotShapeCircle;
  self.pageControl.selectedDotShape = FXPageControlDotShapeCircle;
  self.pageControl.numberOfPages = [self.childViewControllers count];
  self.pageControl.selectedDotSize = 30.0;
  self.pageControl.dotSize = 30.0;
  self.pageControl.defersCurrentPageDisplay = YES;
  self.pageControl.dotSpacing = 50.0;
  self.pageControl.backgroundColor = [UIColor whiteColor];

  [self.view addSubview:self.scrollView];
  [self.view addSubview:self.pageControl];
}
此代码将UIScrollView添加到self.view,然后将UIPageControl添加到self.view

或者你可以加上

[self.view将子视图带到前面:self.pagecontrol]


我做到了。我不知道这是否是一个好的做法。无论如何,下面的代码将UIPageControl置于UIScrollView之上

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    self.scrollView = [[UIScrollView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
    [self.scrollView setPagingEnabled:YES];
    [self.scrollView setScrollEnabled:YES];
    [self.scrollView setShowsHorizontalScrollIndicator:NO];
    [self.scrollView setShowsVerticalScrollIndicator:NO];
    [self.scrollView setDelegate:self];
    [self.scrollView setNeedsDisplay];

    self.pageControl = [[FXPageControl alloc] initWithFrame:CGRectMake(0, 90, [self window_width], 50)];
    self.pageControl.dotShape = FXPageControlDotShapeCircle;
    self.pageControl.selectedDotShape = FXPageControlDotShapeCircle;
    self.pageControl.numberOfPages = [self.childViewControllers count];
    self.pageControl.selectedDotSize = 30.0;
    self.pageControl.dotSize = 30.0;
    self.pageControl.defersCurrentPageDisplay = YES;
    self.pageControl.dotSpacing = 50.0;
    self.pageControl.backgroundColor = [UIColor whiteColor];
    self.pageControl.selectedDotColor = UIColorFromRGB(0x54b97f);
    self.pageControl.dotColor = [UIColor darkGrayColor];
    [self.view addSubview:self.pageControl];
    [self.view addSubview:self.scrollView];
}

听起来我正在寻找的解决方案是将视图的空间分开。我现在的问题是,我该如何用代码来实现这一点?你能指出一个划分空间的例子吗?谢谢你的回答。尽管我要做的是将UIPageControl视图的位置放在UIScrollView的顶部。因此,在页面控制点上不是默认的ScrollView外观。我希望这些点位于滚动视图的顶部。