我使用ICarousel構建應用程序。 旋轉木馬中將會有大約30件物品。 每個項目都是UIImageView顯示動畫的視圖。通過iCarousel ios重新使用視圖
現在我只是提前創建所有30個視圖,將它們添加到數組中,並在需要時提供給旋轉木馬。
SBTViewController* iv1 = [[SBTViewController alloc] initWithNibName:@"SBTViewController" bundle:nil];
SBTViewController* iv2 = [[SBTViewController alloc] initWithNibName:@"SBTViewController" bundle:nil];
.....
.....
SBTViewController* iv30 = [[SBTViewController alloc] initWithNibName:@"SBTViewController_iPhone" bundle:nil];
viewsarray = [NSArray arrayWithObjects: iv1,iv2... iv30]
當傳送帶需要更多的意見 - 我剛剛從陣列
提供意見。然而,我開始越來越MemoryWarnings。 試圖用「reuseView」選項,但它根本不起作用,或者我誤解的東西 每次以下稱爲:
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
}
我只是試圖改變‘視圖’,以我的屏幕外的景色之一但它似乎並沒有工作。轉盤顯示空白屏幕。
有什麼不對?
感謝
感謝尼克(感謝偉大的iCarousel!)。你能幫我理解reusingView參數嗎?它是我從Carousel獲得的指針,並且應該在那裏加載我的子視圖,還是我需要初始化視圖並將其傳回給Carousel的指針? –
iCarousel可能包含10,000個視圖,但每次只能看到少數幾個視圖,因此,而不是在數組中存儲10,000個視圖,或者不斷分配釋放視圖,iCarousel會回收相同的幾個視圖。每次視圖離開屏幕時,它都會被回收用於在屏幕上滾動的下一個視圖。 –
因此,如果reusingView參數爲零,則應該創建一個新視圖並將其返回。如果reusingView參數不爲零,則可以忽略它並返回新視圖,也可以重置它的屬性(任何對特定輪播項目索引唯一的內容)並將其返回。 –