多个虚拟页面 uiscrollview 帮助,填充数组

Posted

技术标签:

【中文标题】多个虚拟页面 uiscrollview 帮助,填充数组【英文标题】:multiple virtual pages uiscrollview help, populating with array 【发布时间】:2011-09-06 21:16:11 【问题描述】:

我一直在寻找这个示例项目http://cocoawithlove.com/2009/01/multiple-virtual-pages-in-uiscrollview.html,我想用从 RSS 源获取的数据填充这些页面视图。我已解析所有数据,将其放入委托中的数组中,并准备导出到适当索引处的页面中。我将 dataPages 更改为 NSMutableArray 并尝试按如下方式填充 dataPages 数组(DataSource.m):

-(id) init 
self = [super init];
if (self != nil)

    dataPages = [[NSMutableArray alloc] init];
    PagesAppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 
    for (int i = 0; i < [delegate.pageTitle count]; i++) 

        [dataPages addObject:[NSDictionary dictionaryWithObjectsAndKeys:
                              [NSString stringWithFormat:@"%@", [delegate.pageTitle objectAtIndex:i]], @"pageTitle",
                              [NSString stringWithFormat:@"%@",[delegate.pageText objectAtIndex:i]], @"pageText",
                              nil]];
    
    return self;

-(NSInteger)dataPageNumber 
return [dataPages count];


-(NSDictionary *)dataForPage:(NSInteger)pageIndex 
return [dataPages objectAtIndex:pageIndex];

但是,使用 DataSource 类时,数据会在代理中的解析器能够及时填充数组之前加载到页面中。委托解析器完成后有没有办法加载类?一旦 rssParser 完成其过程,我的应用程序确实具有委托触发功能。如果有帮助,我正在使用 xCode 4

【问题讨论】:

【参考方案1】:

只在你的 init 方法中初始化需要的东西,因为它是第一个被调用的东西,比如 dataPages mutableArray;然后当您的委托获得响应时,调用填充数组和滚动视图的方法。另外,如果你要这样做,请记住 UIKit 对象不是线程安全的,所以如果你要声明一个填充数组和 scrollView 的方法,请在主线程上调用以防止你的应用程序崩溃。

【讨论】:

感谢您的回答!我能够让它工作!在 RSS 提要完成解析后,我需要将子视图和数据分配给窗口。傻我!我之前都没想到! 我花了好几天才弄清楚这么简单的事情,非常感谢^_^

以上是关于多个虚拟页面 uiscrollview 帮助,填充数组的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 帮助

在启用水平页面的 UIScrollview 中滑动多个 UITableView

为多个变量创建和填充页面 Swift 4.0

UIScrollViews 和动态创建页面

如何在启用分页的 UIScrollView 中延迟加载 100 多个页面?

Paging UIScrollView - 如何一次轻弹多个页面