2009-11-01 2 views
0

OpenFlow에서 dataSource를 가져 오는 데 도움이 필요합니다. IOpenFlow에서 작동하는 dataSource 가져 오기 도움말

전화를 가로로 돌릴 때마다 CoverFlow 기능을 제공하려고합니다. 나는 Alex Fajkowski의 멋진 코드 인 OpenFlow (http://fajkowski.com/blog/2009/08/02/openflow-a-coverflow-api-replacement-for-the-iphone/)를 사용하고 있지만 제공된 예제는 내가 필요로하는 것과 매우 다릅니다.

Navbar View Controller 내부의 가로보기에서 OpenFlow를 사용하고 있습니다. OpenFlow는 이미 작동합니다. 나는 내 모든 이미지를 스크롤 할 수 있으며 정말 잘 작동합니다. 그러나 나는 100 개 이상의 이미지와 그것을 사용하고 처음에는로드하는 데 시간이 걸립니다. 성능 향상을 살펴보면 AFOpenFlowViewDataSource 대리자가 호출되지 않는다는 것을 알게되었습니다. 뷰 컨트롤러 클래스 "flowView.dataSource = self;"에서 델리게이트를 지정하여 AFOpenFlowViewDelegate를 사용할 수있었습니다. 하지만 데이터 소스 대리인이 작동하지 않게되었습니다. 심지어는 "flowView.viewDelegate = self;"가 아닙니다.

데이터 소스가 필요합니까? 로드 스레딩에 필요합니다.

답변

2

좋아, 지금은 아름다운 것 같습니다. DataSource 델리게이트는 객체가 동적으로로드 될 때만 호출됩니다. 즉, "[(AFOpenFlowView *)self.view setImage]"을 사용하면 이미지가 이미로드되어 있기 때문에 dataSOurce가 호출되지 않습니다. 그러나 "[(AFOpenFlowView *)self.view setNumberOfImages:30];"을 사용하면 DataSource 대리자가 필요에 따라 이미지를로드합니다. GetImageOperationNSThread은 내 100 개 이상의 이미지에 매우 유용합니다. 그러나 이미지는 화면을 벗어난 후에 언로드되지 않습니다. 누구나 화면을 벗어날 때 이미지를 언로드하는 방법을 알고 있습니까?

+2

각보기가 추가 될 때 증가하는 가변 배열로부터 오는 것 같습니다. 이 배열은 소량의 객체에 적합하지만 많은 객체가있을 때 메모리가 필요합니다. 배열 라인을 주석으로 처리하여 해결했습니다. inside AFOpenFlowView.m - (void) setImage : (UIImage *) image forIndex : (int) 다음 행을 색인하고 주석 처리하십시오. // [coverImages setObject : imageWithReflection forKey : coverNumber]; // [coverImageHeights setObject : [NSNumber numberWithFloat : image.size.height] forKey : coverNumber]; – user200607