我需要允許我的用戶在iPad應用程序的文檔目錄中滾動縮略圖列表。當他們點擊其中一個縮略圖時,我需要知道哪一個被點擊(或者讓它調用一種方法,基本上是同一件事)。滾動縮略圖列表
我知道如何將縮略圖放在文檔目錄中,並且如何從那裏讀取它們。但我不確定哪個小部件最適合顯示內容。它是UITableView嗎? CCScrollLayer? CCMenuAdvanced?還有別的嗎?
我需要允許我的用戶在iPad應用程序的文檔目錄中滾動縮略圖列表。當他們點擊其中一個縮略圖時,我需要知道哪一個被點擊(或者讓它調用一種方法,基本上是同一件事)。滾動縮略圖列表
我知道如何將縮略圖放在文檔目錄中,並且如何從那裏讀取它們。但我不確定哪個小部件最適合顯示內容。它是UITableView嗎? CCScrollLayer? CCMenuAdvanced?還有別的嗎?
CCScrollLayer
不起作用以及UIScrollView
。
我使用視圖CCdirector
添加UIkit
。
UIScrollView *scrollView = [UIScrollView alloc] init];
[[[CCDirector sharedDirector] view] addSubview:scrollView];
或添加UITableView
。
採取一個數組縮略圖所有路徑,讓我們稱之爲pathsArray
NSArray *pathsArray = [seld getPathsForAllImages];
現在實行UITableViewDataSource和的UITableViewDelegate:
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [pathsArray count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
}
NSString *pathForImage = [pathsArray objectAtIndex:indexPath.row];
cell.imageView.image = [UIImage imageWithContentsOfFile:pathForImage];
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *pathForImage = [pathsArray objectAtIndex:indexPath.row];
}
我有各種各樣的問題,一個覆蓋在cocos2d項目上的UIScrollView。即使有所有建議的黑客,如果一個框架在cocos2d中花費太長時間,UIScrollView也會停止正常工作。我懷疑這也會發生在UITableView上。
爲了解決我自己的問題,我創建了一個自定義ScrollNode類。這真的很容易使用:
// create the scroll node
ScrollNode *scrollNode = [ScrollNode nodeWithSize:CGSizeMake(size.width, size.height)];
[self addChild:scrollNode];
// Generate some content for the scroll view
// add it directly to scrollView, or to the built in menu (scrollView.menu)
[scrollNode.menu addChild:yourMenuItem];
// Set the content rect to represent the scroll area
CGRect contentRect = [scrollNode calculateScrollViewContentRect];
[scrollNode setScrollViewContentRect:contentRect];
我會使用UITableView,以便單元應該重用自己,而不是與許多UIImages的開銷內存。 – diegotrevisan
@ sp4rkbr你能展示一個代碼示例嗎? – Eddy