Objective-C: Photo Viewer para iOS con soporte ARC?

El último par de días he intentado implementar un Photo Viewer en mi aplicación iOS 5.0 en Xcode 4.2. Por proyecto se ejecuta con recuento automático de references (ARC). He intentado Three20 Photo Viewer pero tiene muchas dependencies y es realmente una pieza pesada para include en mi proyecto. A continuación, he probado EGOPhotoViewer que realmente parece una gran solución para mi propósito, pero, por desgracia, no soy compatible con ARC y, debido a eso, no puedo comstackrlo dentro de mi proyecto.

¿Alguien conoce un Photo Viewer para iOS que sea compatible con ARC? ¿O podría, de alguna manera, ser agregado como una biblioteca a un proyecto que se ejecuta con ARC?

Es posible deshabilitar ARC para files individuales agregando -fno-objc-arc a un file.

Para deshabilitar ARC para un file, select su proyecto en Xcode 4, vaya a la pestaña de fases de construcción , select los files que desea deshabilitar para ARC, agregue la bandera del comstackdor -fno-objc-arc a estos files.

Es posible que desee echar un vistazo a MWPhotoBrowser : puede agregarlo a su proyecto como una biblioteca estática que funcionará independientemente de la configuration de ARC de su proyecto.

MWPhotoBrowser puede mostrar una o más imágenes proporcionando objects UIImage o URL a files, imágenes web o resources de la biblioteca. El buscador de fotos maneja la descarga y el almacenamiento en caching de fotos desde la web sin problemas. Las fotos se pueden ampliar y ampliar, y se pueden mostrar leyendas opcionales (personalizables). El browser también se puede usar para permitir al usuario seleccionar una o más fotos con la vista de la grilla o de la image principal.

Imágenes de MWPhotoBrowser

Así es como lo hice:

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { self.startX = scrollView.contentOffset.x; } - (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { //NSLog(@"scrollViewDidEndDragging"); self.endX = scrollView.contentOffset.x; self.photoIdx = (int)self.startX / Normalize(1160); if (decelerate == FALSE) { int intoThePhoto = (int)self.photoScrollView.contentOffset.x % Normalize(1160); if (intoThePhoto < Normalize(1060/2)) [scrollView setContentOffset:CGPointMake(Normalize(1160)*self.photoIdx,0) animated:YES]; else [scrollView setContentOffset:CGPointMake(Normalize(1160)*(self.photoIdx+1),0) animated:YES]; } } -(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{ if ((self.endX - self.startX) > 0 && self.photoIdx < ([self.photos count] -1)) [scrollView setContentOffset:CGPointMake(Normalize(1160)*(self.photoIdx+1),0) animated:YES]; else if ((self.endX - self.startX) < 0 && self.photoIdx != 0) [scrollView setContentOffset:CGPointMake(Normalize(1160)*(self.photoIdx-1),0) animated:YES]; }