【问题标题】:how to paginate UIScrollView with different page sizes?如何对不同页面大小的 UIScrollView 进行分页?
【发布时间】:2010-08-24 14:39:25
【问题描述】:

我正在尝试对不同宽度的 UILabel 进行水平滚动

我已经将所有标签放在 UIScrollView 中,但由于页面滚动、弹跳和捕捉是在 scrollview.frame.width“步骤”中完成的,我无法设置它随心所欲地工作。

这可以吗?非常感谢:)

【问题讨论】:

    标签: iphone


    【解决方案1】:

    如果将 width 属性的大小设置为下一个标签的宽度会怎样?类似于(在您的滚动视图委托中):

    - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
        // Get the label that's going to slide into view
        UIView *label = [self getCurrentLabel];
    
        // Get it's width
        float width = [label frame].size.width;
    
        // Set our size
        CGRect frame = [scrollView frame];
        frame.size.width = width;
        [scrollView setFrame:frame];
    }
    

    PS 我没有试过这个,所以它可能会失败!

    【讨论】:

    • 这行不通的原因有很多。首先,您不知道哪个标签会滑入视图。滚动视图可以向左或向右滚动。其次,标签的位置可能不仅仅是宽度 * labelWhichWillSlideIn。
    • 当然你知道下一个标签是什么——你只有一个标签数组和一个 currentLabel 索引。并且您可以使用 currentOffset 属性跟踪滚动的方式。并且您应该已经将标签放置在 viewWillAppear 中。这个问题只是说你的标签是不同的宽度,而不是你知道这些标签是什么!
    猜你喜欢
    • 2013-04-29
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-12
    相关资源
    最近更新 更多