2011-12-01 25 views
7

Vài ngày gần đây tôi đã cố gắng triển khai Trình xem ảnh trong Ứng dụng iOS 5.0 của tôi trong Xcode 4.2. Theo dự án đang chạy với tính năng đếm tham chiếu tự động (ARC). Tôi đã thử Three20 Photo Viewer nhưng điều này có rất nhiều phụ thuộc và thực sự là một phần nặng để bao gồm trong dự án của tôi. Tiếp theo tôi đã thử EGOPhotoViewer mà thực sự có vẻ như là một giải pháp tuyệt vời cho mục đích của tôi - nhưng thật đáng buồn là tôi không hỗ trợ ARC và vì thế, tôi không thể biên dịch nó bên trong dự án của mình.Mục tiêu-C: Trình xem ảnh dành cho iOS với hỗ trợ ARC?

Có ai biết Trình xem ảnh cho iOS hỗ trợ ARC - hoặc có thể, theo một cách nào đó, được thêm làm thư viện cho một dự án đang chạy với ARC không?

Trả lời

12

Có thể tắt ARC cho từng tệp bằng cách thêm -fno-objc-arc vào tệp.

Để vô hiệu hóa ARC cho một tập tin chọn dự án của bạn trong Xcode 4, đi đến xây dựng giai đoạn tab, chọn các tập tin bạn muốn vô hiệu hóa cho ARC, thêm -fno-objc-arc biên dịch lá cờ để những các tập tin.

+0

Nghĩ bạn! Điều đó thực sự đã cứu ngày của tôi. – dhrm

15

Bạn có thể muốn xem MWPhotoBrowser - bạn có thể thêm nó vào dự án của mình làm thư viện tĩnh sẽ hoạt động độc lập với cài đặt ARC của dự án của bạn.

MWPhotoBrowser có thể hiển thị một hoặc nhiều hình ảnh bằng cách cung cấp các đối tượng UIImage hoặc URL tới tệp, hình ảnh web hoặc tài sản thư viện. Trình duyệt ảnh xử lý việc tải xuống và lưu vào bộ nhớ cache ảnh từ web một cách liền mạch. Ảnh có thể được phóng to và thu nhỏ, và các chú thích tùy chọn (tùy chỉnh) có thể được hiển thị. Trình duyệt cũng có thể được sử dụng để cho phép người dùng chọn một hoặc nhiều ảnh bằng cách sử dụng chế độ xem lưới hoặc chế độ xem hình ảnh chính.

MWPhotoBrowser Screenshots

+0

Có vẻ rất hữu ích. Hiện tại tôi đang sử dụng EGOPhotoViewer cho dự án của tôi. Bạn có biết những ưu điểm của trình duyệt của bạn so với EGOPhotoViewer không? – dhrm

+0

Một điều; bạn nên làm cho nó dễ dàng hơn để thêm hỗ trợ cho nhiều ngôn ngữ. – dhrm

+1

Cảm ơn! Tôi chỉ có một cái nhìn nhanh về EGOPhotoViewer nhưng tôi nghĩ chúng khá giống nhau. Tôi đã cố gắng làm cho tôi rất sạch sẽ, dễ sử dụng và được tối ưu hóa; có một vở kịch nếu bạn có thời gian! Cảm ơn bạn đã đề xuất nhiều ngôn ngữ. Chỉ có một vài chuỗi bị ảnh hưởng nên không khó. Tôi sẽ xem xét nó! –

0

Đây là cách tôi đã làm nó:

- (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]; 
} 
Các vấn đề liên quan