나는 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
{
}
가 난 그냥 변경하려고"내 오프 스크린보기 중 하나에보기 " . 그러나 작동하지 않습니다. 회전 목마가 빈 화면을 보여줍니다.
을 잘못 무엇입니까?
감사합니다. Nick (위대한 iCarousel에 감사드립니다!). reusingView 매개 변수를 이해하는 데 도움을 주시겠습니까? 그것은 내가 회전식에서 얻은 포인터이며 거기에 내 하위 뷰를로드해야합니까? 아니면 내 뷰와 함께 init이 필요하고 그것을 회전식으로 다시 전달할 포인터입니까? –
iCarousel은 10,000 개의 뷰를 포함 할 수 있지만 한 번에 몇 개만 표시되므로 배열에 10,000 개의 뷰를 저장하거나 릴리즈 된 뷰를 지속적으로 할당하는 대신 iCarousel 창은 동일한 몇 개의 뷰를 재활용합니다. 보기가 화면에서 벗어날 때마다 화면에서 스크롤되는 다음보기에 사용되는 재활용됩니다. –
그래서 reusingView 매개 변수가 nil이면 새보기를 작성하여 리턴해야합니다. reusingView 매개 변수가 nil이 아닌 경우이를 무시하고 새보기를 반환하거나 속성 (특정 캐 러셀 항목 색인에 고유 한 항목)을 재설정하여 반환 할 수 있습니다. –