2010-06-21 71 views
3

我有一個UIImage,我想要顯示與TTPhotoViewController,但TTPhotoViewController不採取UIImage作爲參數。它確實需要一個TTPhoto作爲參數,所以我想知道是否有一種方法可以將UIImage轉換爲TTPhoto,或者有任何其他方式讓TTPhotoViewController顯示我的UIImage,而不是設置defaultImage,工作太好了。如何讓TTPhotoViewController顯示UIImage?

回答

3

您需要創建一個符合TTPhotoSource協議的對象,以實現所需的方法。然後,您需要使用符合TTPhoto協議的對象填充該數據源。

然後,您應該能夠在TTPhotoViewController上設置照片來源屬性,並且Three20的魔法應該可以工作。

以我自己的經驗,我只使用這個框架的URL與圖像和下載他們使用Three20的TTModel框架。我不完全確定這是如何影響本地加載圖像的。

+0

由於我想要一個漂亮的PhotoViewer,因此我在該項目中添加了Three20。所有的圖像都存儲在本地。此外,我只想顯示一個圖像,至少現在。 – 2010-06-21 15:13:10

+0

你無法真正逃脫Three20的做事方式。這只是它書面的方式。如果你想使用照片查看器,你必須創建一個照片源並填充它。如果您只想在滾動視圖中顯示幾張圖片,我建議您查看UIScrollView文檔和示例應用程序,並製作您自己的更簡單的照片瀏覽器。整體而言,Three20是一個相當怪物,除了正在進行的重構之外,還是很難掌握。 – Jasarien 2010-06-21 16:38:05

+0

很久以前我問過這個問題,我甚至沒有訪問源代碼,但我認爲這是我最終做的,所以我想我應該接受這個作爲我的答案。 – 2011-02-11 19:56:48

7

我用一個小黑客做到這一點:

NSString *url = [[TTURLCache sharedCache] createUniqueTemporaryURL];  
[[TTURLCache sharedCache] storeImage:baseImage forURL:url force:YES]; 

PEPhotoViewController *album=[[[PEPhotoViewController alloc] initWithImageURL:url] autorelease]; 
+1

我必須先嚐試一下,然後才能接受它作爲我的回答,但它看起來像一個很好的黑客。 – 2010-07-16 07:57:40

1

你可以給本地路徑到庫中。應該是bandle://documents://。看看TTCatalog示例源代碼。

+0

'bundle://'*。 +1爲'文件://',正是我所需要的 – ColdLogic 2012-03-05 20:46:56

0

只需將self.defaultImage設置爲您的圖像。它應該工作。