在TTLauncherView中加载更多页面

时间:2012-08-05 13:54:46

标签: iphone objective-c ios xcode three20

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

我有47个项目,47个项目共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];  

}

2 个答案:

答案 0 :(得分:0)

我记得,TTLauncherView没有自动将TTLauncherItem分解为页面。你需要一个数组数组。第一个数组中的所有启动项都在第一个页面上,第二个数组中的所有启动项都在第二个页面上等等。自从我使用它以来已经很长时间了,但我认为这是怎么回事它奏效了。

答案 1 :(得分: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];      

}