Thumb Nail Gallery?

时间:2010-09-01 19:43:15

标签: iphone objective-c cocoa-touch

我很好奇我将如何实现类似的视图(见下文)类似于用于iPhone照片应用程序的视图。我最初的想法是一个桌面视图,每个单元格保存4个图像,任何人都可以指向正确的方向。我特别感兴趣的是使用Apple的API,所以在这个阶段不要对第三方API /控制器感到困扰。

alt text

5 个答案:

答案 0 :(得分:1)

是的,正如你所说,桌面视图可以工作,4个东西(/行)中的每一个都是带有自定义图像的UIButton。您必须确保表行本身不可选。 (UITableView Setting some cells as "unselectable")如果你要有很多行,请确保使用表格视图单元格缓存。

实际的表视图单元格可以是UITableViewCell子类,也可以只是普通的子类,并在其contentView中添加了一些子视图。

答案 1 :(得分:0)

我建议Three20 API。这是用于构建Facebook iPhone应用程序的API,并且具有非常大的UI元素集合,包括许多照片管理UI。

缩略图查看器(来自其网站):

alt text

答案 2 :(得分:0)

在iOS上,这项工作主要是为您完成的。查看Apple的MPMediaPickerController文档。

答案 3 :(得分:0)

AQGridView是FOSS,用于许多知名应用程序,如Kobo阅读器和Netflix演员。

答案 4 :(得分:0)

您需要使用UIScrollView和一堆UIImageViews或UIButtons(图像作为背景图像)。此代码在滚动视图上使用按钮。此外,你需要一个函数来生成缩略图,除非你使用资产库,在这种情况下函数已经存在。

    [scrollview setContentSize:CGSizeMake(320, (items*itemWidth)];

    for (int i = 0; i < [items count]; i++) {

        if (i % 4 == 0) {

            y+=1;
            x = 0;
        }


        UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
        [myButton setBackgroundImage:[UIImage imageWithCGImage:[items objectAtIndex:i]] forState:UIControlStateNormal];
        CGRect rect2 = myButton.frame;
        rect2.size.height = kScrollObjHeight2;
        rect2.size.width = kScrollObjWidth2;
        rect2.origin.y = 10 + (y * 70) + (y *5);
        rect2.origin.x = 8 + (x * kScrollObjWidth2) + (x *8);
        myButton.frame = rect2;
        myButton.tag = i;   // tag our images for later use when we place them in serial fashion
        x = x + 1;


        [myButton addTarget:self action:@selector(clickFunction:) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:myButton];


        [scrollview addSubview:myButton];

    }

};


[scrollview setBackgroundColor:[UIColor blackColor]];
[scrollview setCanCancelContentTouches:NO];
scrollview.indicatorStyle = UIScrollViewIndicatorStyleWhite;
scrollview.clipsToBounds = YES;     // default is NO, we want to restrict drawing within our scrollview
scrollview.scrollEnabled = YES;

scrollview.pagingEnabled = YES;