ios UIImagePickerController里面的相机滚动?

时间:2014-05-01 17:06:53

标签: ios uiimagepickercontroller camera-roll

如何在相机滚动选择器中包含UIImagePickerController,类似于facebook和path所做的(见截图)。我只是想指向正确的方向,而不是专门寻找如何实现这一目标的代码..谢谢!

enter image description here

1 个答案:

答案 0 :(得分:2)

我猜他们正在使用UICollectionView并检查UICollectionViewCell中的第一个collectionView:cellForItemAtIndexPath:。当UICollectionViewDelegate创建第一个单元格时,他们在该单元格上指定了一个按钮,按下时会显示UIImagePickerController

重要:

如果您决定使用额外的单元格设计自己的照片浏览器,请确保在项目数量为UICollectionViewDataSource方法中为+1。

E.g。

- (void)showImagePicker:(id)sender
{
    // Present the UIImagePickerController
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return [self.photos count] + 1;
}    

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == 0)
    {
        // You could also just as easily add a button to a UICollectionViewCell
        // Instead of creating a custom subclass.
        CameraButtonCell * cell = ...;
        [cell.button addTarget:self action:@selector(showImagePicker:) forControlEvents:UIControlEventTouchUpInside];

        return cell;
    }

    UICollectionViewCell * cell = ...;

    return cell;
}

这是基于他们创建了自己的专辑并且没有使用默认相机胶卷的假设。另外,我没有使用脸书或路径,所以我不确定他们是如何展示这张专辑的。这意味着,我不知道在UIImagePickerController中按下相机胶卷按钮时是否显示该相册。如果是这样,Facebook很可能会访问私有API,或者他们正在使用自己的相机覆盖,然后显示他们的自定义相册。

以下是Apple的一些示例代码,用于实现自定义相机覆盖。

https://developer.apple.com/library/ios/samplecode/PhotoPicker/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010196

修改

经过进一步调查后,您似乎必须创建自己的照片浏览器才能完成此操作。根据UIImagePickerController类参考:

  

创建用于浏览照片的完全自定义的图像选择器   库,使用Assets Library框架中的类。例如,   您可以创建一个显示更大缩略图的自定义图像选择器   图像,利用EXIF元数据,包括时间戳和   位置信息,或与其他框架集成的信息   地图套件。有关更多信息,请参阅资产库框架参考。   可以使用Assets Library框架进行媒体浏览   从iOS 4.0开始

所以理论上,您可以使用资源库创建自己的照片浏览器,从相机胶卷加载图像,并在显示UIImagePickerController的第一个(或任何一个)单元格中插入一个按钮,如上所述。 / p>

<强>参考:

完全自定义媒体捕获和浏览

https://developer.apple.com/library/ios/documentation/uikit/reference/UIImagePickerController_Class/UIImagePickerController/UIImagePickerController.html

祝你好运!希望这有帮助!