0

在我的 TTLauncherView 实现中,只加载第一页。为什么?

我有 47 个项目,47 个项目 div 9 个项目,我应该有 6 页。

感谢您的帮助。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {      


NSMutableString *jsonString = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
NSDictionary *results = [jsonString JSONValue];

NSArray *photos = [[results objectForKey:@"photosets"] objectForKey:@"photoset"];

launcherView = [[TTLauncherView alloc] initWithFrame:self.view.bounds];
launcherView.backgroundColor = [UIColor whiteColor];
launcherView.delegate = self;
launcherView.columnCount = 3;

launcherView.persistenceMode = TTLauncherPersistenceModeNone;
NSMutableArray *itemArray = [[NSMutableArray alloc] init];
for (NSDictionary *photo in photos)   
{

     NSString *iconURLString = [NSString stringWithFormat:@"http://farm%@.static.flickr.com/%@/%@_%@_s.jpg", 
     [photo objectForKey:@"farm"], [photo objectForKey:@"server"], [photo objectForKey:@"primary"], [photo objectForKey:@"secret"]];


     NSDictionary *title = [photo objectForKey:@"title"];
     NSString *itemTitle = [title objectForKey:@"_content"];
     TTLauncherItem *itemMenu = [[[TTLauncherItem alloc] initWithTitle:itemTitle
                                                                 image:iconURLString
                                                                   URL:nil 
                                                             canDelete:NO] autorelease];

     [itemArray addObject:itemMenu];     

}

launcherView.pages = [NSArray arrayWithObject: itemArray];
[self.view addSubview:launcherView];  

}
4

2 回答 2

0

我修改后的代码带有@Darren 的提示

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {      

NSMutableString *jsonString = [[NSMutableString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];    
NSDictionary *results = [jsonString JSONValue];    
NSArray *photos = [[results objectForKey:@"photosets"] objectForKey:@"photoset"];
NSMutableArray *itemArray = [[NSMutableArray alloc] init];
NSMutableArray *pageArray = [[NSMutableArray alloc] init];
NSNumber *countPage = [[NSNumber alloc] initWithInt:0];

for (NSDictionary *photo in photos)   
{

    NSString *iconURLString = [NSString stringWithFormat:@"http://farm%@.static.flickr.com/%@/%@_%@_s.jpg", 
                               [photo objectForKey:@"farm"], [photo objectForKey:@"server"], [photo objectForKey:@"primary"], [photo objectForKey:@"secret"]];

    NSString *photoCount = [photo objectForKey:@"photos"];
    NSDictionary *title = [photo objectForKey:@"title"];
    NSString *itemTitle = [title objectForKey:@"_content"];
    TTLauncherItem *itemMenu = [[[TTLauncherItem alloc] initWithTitle:itemTitle
                                                                image:iconURLString
                                                                  URL:nil 
                                                            canDelete:NO] autorelease];
    itemMenu.badgeValue = photoCount; 

    [itemArray addObject:itemMenu];
    int value = [countPage intValue];
    countPage = [NSNumber numberWithInt:value + 1];
    if (countPage == [NSNumber numberWithInt:9]){
       countPage = [NSNumber numberWithInt:0]; 
       [pageArray addObject:itemArray];
        itemArray = [[NSMutableArray alloc] init];


    }

}
[pageArray addObject:itemArray];

launcherView = [[TTLauncherView alloc] initWithFrame:self.view.bounds];
launcherView.backgroundColor = [UIColor blackColor];
launcherView.delegate = self;
launcherView.columnCount = 3;    
launcherView.persistenceMode = TTLauncherPersistenceModeNone;    
launcherView.pages = pageArray;    
[self.view addSubview:launcherView];      

}
于 2012-08-06T13:57:22.933 回答
0

我记得,TTLauncherView 不会自动将 TTLauncherItem 分解为页面。你需要一个数组数组。第一个数组中的所有启动器项目都将在第一页上,第二个数组中的所有启动器项目将在第二页上等等。我已经很长时间没有使用它了,但我认为就是这样有效。

于 2012-08-05T14:27:46.640 回答