【问题标题】:using UIScrollView generating issues使用 UIScrollView 生成问题
【发布时间】:2010-10-07 15:34:56
【问题描述】:

这可能是一个简单的问题。我有一个带有 3 个视图的 UIScrollView。我需要显示 3 个点,如指示器(以指示用户有更多页面)。我该怎么做?

【问题讨论】:

    标签: iphone objective-c iphone-sdk-3.0 ios4


    【解决方案1】:

    使用 UIPageControl:

    pageControl = [[UIPageControl alloc] initWithFrame:CGRectMake(...)]; // set in header
    [pageControl setNumberOfPages:3];
    [pageControl setCurrentPage:0];
    [pageControl setBackgroundColor:[UIColor clearColor]];
    [self.view addSubview:pageControl];
    

    那是显示点的UI组件……页数就是点数。当前页面是当前突出显示的页面。

    然后你需要使用滚动视图委托方法来确定你滚动到了哪个页面:

    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{
      int newOffset = scrollView.contentOffset.x;
      int newPage = (int)(newOffset/(scrollView.frame.size.width));
      [pageControl setCurrentPage:newPage];
    }
    

    【讨论】:

    • 谢谢。目前我有这个。但我需要“点状指示器”。就像在 iphone 主显示屏中一样。 (表示水平方向应用较多)
    • 你根本没有那个... UIPageControl 是三个点。如果你有这个,那么你就不会有问题了。
    • 谢谢托马斯。似乎这是正确的。我会尽力让你知道。
    【解决方案2】:

    您可以创建添加 UIScrollView 和 UIPageControl 的 contentView,将 pageControl 的 numberOfPages 设置为选定的计数,并在滚动时更改 pageControl 中的页面(currentPage 属性)。

    干杯, Krzysztof Zabłocki

    【讨论】:

      【解决方案3】:

      您可以使用带有 3 个点的 UIPageControl。您需要屏幕空间(假设屏幕底部)来放置页面控件,因此您的滚动视图将无法达到全高。

      【讨论】:

      • 只要页面控件不是 UIScrollView 的子视图,就没有理由根本不能越过滚动视图。加上这个答案除了命名用于显示页面控件的类之外没有任何帮助。
      • 是的,但我假设您不希望 UIPageControl(3 个点)出现在您的视图上。它的一般习惯是把它放在 UISCrollView 下面作为用户可用页面数和当前页面的表示,这就是你想要的。这是一个很好的例子:cocoawithlove.com/2009/01/…
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多