Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.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 页面控制消失_Ios_Uiscrollview_Uipagecontrol - Fatal编程技术网

Ios 页面控制消失

Ios 页面控制消失,ios,uiscrollview,uipagecontrol,Ios,Uiscrollview,Uipagecontrol,我已经在这方面工作了很长一段时间了,我就是想不出来 我的页面控件不断消失 我本来有我的代码,所以它可以工作,但它显示的页面控制之间的滚动视图 现在我已经改变了这一点,当在两个视图上向前滚动时,它会显示出来,而在其他视图上它不起作用,因为页面控件甚至不会显示出来。当您向后滚动到第一个视图时,页面控件也会消失(包括它在开始运行我的代码时处理的两个) 我所有的视图都有相同的设置,所以我不知道为什么会发生这种情况 下面是我正在使用的代码的标题: - (void)scrollViewDidScroll:(

我已经在这方面工作了很长一段时间了,我就是想不出来

我的页面控件不断消失

我本来有我的代码,所以它可以工作,但它显示的页面控制之间的滚动视图

现在我已经改变了这一点,当在两个视图上向前滚动时,它会显示出来,而在其他视图上它不起作用,因为页面控件甚至不会显示出来。当您向后滚动到第一个视图时,页面控件也会消失(包括它在开始运行我的代码时处理的两个)

我所有的视图都有相同的设置,所以我不知道为什么会发生这种情况

下面是我正在使用的代码的标题:

- (void)scrollViewDidScroll:(UIScrollView *)sender {

    if (_pageControlUsed || _rotating) {
        // do nothing - the scroll was initiated from the page control, not the user dragging
        return;
    }

    // Switch the indicator when more than 50% of the previous/next page is visible
    CGFloat pageWidth = self.scrollView.frame.size.width;
    int page = floor((self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
    if (self.pageControl.currentPage != page  && page>=0 && page<self.childViewControllers.count) {
        UIViewController *oldViewController = [self.childViewControllers objectAtIndex:self.pageControl.currentPage];
        UIViewController *newViewController = [self.childViewControllers objectAtIndex:page];
        [oldViewController viewWillDisappear:YES];
        [newViewController viewWillAppear:YES];
        self.pageControl.currentPage = page;
        [oldViewController viewDidDisappear:YES];
        [newViewController viewDidAppear:YES];
        _page = page;


        CGRect frame = pageControl.frame;
        frame.origin.x = pageWidth;
        pageControl.frame = frame;
    }
}
-(无效)scrollViewDidScroll:(UIScrollView*)发送方{
如果(_pageControlUsed | | | u rotating){
//不执行任何操作-滚动是从页面控件启动的,而不是用户拖动的
返回;
}
//当上一页/下一页显示超过50%时,切换指示器
CGFloat pageWidth=self.scrollView.frame.size.width;
intpage=floor((self.scrollView.contentOffset.x-pageWidth/2)/pageWidth)+1;

如果(self.pageControl.currentPage!=page&&page>=0&&page请以这种简单的方式添加页面控件

改变

- (IBAction)changePage {
    // update the scroll view to the appropriate page
    CGRect frame;
    frame.origin.x = self.scrollView.frame.size.width * self.pageControl.currentPage;
    frame.origin.y = 0;
    frame.size = self.scrollView.frame.size;
    [self.scrollView scrollRectToVisible:frame animated:YES];
}

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
    pageControlBeingUsed = NO;
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    pageControlBeingUsed = NO;
}

请查看完整教程的链接使用页面控件而不计算页面滚动元素的简单而好的方法谢谢您的快速回复!效果非常好!@iphonemaclover
- (IBAction)changePage {
    // update the scroll view to the appropriate page
    CGRect frame;
    frame.origin.x = self.scrollView.frame.size.width * self.pageControl.currentPage;
    frame.origin.y = 0;
    frame.size = self.scrollView.frame.size;
    [self.scrollView scrollRectToVisible:frame animated:YES];
}

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
    pageControlBeingUsed = NO;
}

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    pageControlBeingUsed = NO;
}