2011-12-01 17 views
7

Son birkaç gün, Xcode 4.2'deki iOS 5.0 Uygulamamda bir Fotoğraf Görüntüleyici uygulamaya çalıştım. Proje tarafından Otomatik Referans Sayma (ARC) ile çalışıyor. Ben Three20 Photo Viewer denedim ama bu bir çok bağımlılığa sahip ve gerçekten de projeme dahil etmek için ağır bir parça. Daha sonra gerçekten benim amacım için harika bir çözüm gibi görünen EGOPhotoViewer'u denedim - ama ne yazık ki ARC'yi desteklemiyor ve bunun sonucunda projemde derleyemiyorum.Amaç-C: ARC desteği ile iOS için Fotoğraf Görüntüleyici?

ARC'yi destekleyen bir iOS için Photo Viewer'ı tanıyan herkes var mı, yoksa bir şekilde ARC ile çalışan bir projeye kitaplık olarak eklenebilir mi?

cevap

12

Bir dosyaya -fno-objc-arc ekleyerek ayrı dosyalar için ARC'yi devre dışı bırakmak mümkündür.

Eğer ARC için devre dışı bırakmak istediğiniz dosyaları seçin inşa aşamalarına sekmesine gidin Xcode 4 projenizi seçin Bir dosya için ARC devre dışı bırakmak için, bunlara -fno-objc-yay derleyici bayrağı ekleyin Dosyalar.

+0

sizi düşünün! Bu gerçekten benim günümü kurtardı. – dhrm

15

MWPhotoBrowser'a bir göz atmak isteyebilirsiniz - projenize, projenizin ARC ayarlarından bağımsız olarak çalışacak olan statik bir kitaplık olarak ekleyebilirsiniz.

MWPhotoBrowser, UIImage nesnelerini veya dosyalara, web resimlerine veya kitaplık varlıklarına ilişkin URL'leri sağlayarak bir veya daha fazla görüntüyü görüntüleyebilir. Fotoğraf tarayıcısı, fotoğrafların internetten indirilmesini ve önbelleğini sorunsuz bir şekilde işleyebilir. Fotoğraflar yakınlaştırılabilir ve kaydırılabilir ve isteğe bağlı (özelleştirilebilir) altyazılar görüntülenebilir. Tarayıcı ayrıca kullanıcının ızgara veya ana görüntü görünümünü kullanarak bir veya daha fazla fotoğraf seçmesine izin vermek için de kullanılabilir.

MWPhotoBrowser Screenshots

+0

Çok kullanışlı görünüyor. Şu anda projem için EGOPhotoViewer kullanıyorum. Tarayıcınızın avantajlarını EGOPhotoViewer ile karşılaştırıldığında biliyor musunuz? – dhrm

+0

Bir şey; Birden çok dil için destek eklemeyi daha kolay yapmalısınız. – dhrm

+1

Teşekkürler! Sadece EGOPhotoViewer'a hızlıca baktım ama bence oldukça benzerler. Benimkini çok temiz, kullanımı kolay ve optimize etmeye çalıştım; Zamanı alırsan bir oyun oyna! Birden çok dil önerisi için teşekkürler. Etkilenecek sadece birkaç ip var, bu yüzden zor olmamalı. Içine bakacağım! –

0

İşte öyle yapmıştım:

- (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]; 
}