2014-12-03 33 views
0

我試圖把UICollectionview放在擴展的uitableviewcell內,但我不斷收到錯誤。 collectionview也可以拍照並將其存儲在collectionview中。我用這個代碼:我怎樣才能以擴展uitableviewcell內置uicollectionview

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath (NSIndexPath *)indexPath 
{  
static NSString *cellIdentifier = @"myCell";  
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath]; 


[cell addTarget:self action:@selector(uploadPicture:) forControlEvents:UIControlEventTouchUpInside]; 
return cell; 
} 

- (void)uploadPicture:(id)sender 
{ 
UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.allowsEditing = YES; 
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; 
[self presentViewController:picker animated:YES completion:NULL]; 
} 

我得到的錯誤是「爲UICollectionViewCell沒有明顯的@interface聲明selelctor addTarget:動作:forControlEvents」在第4行和第5行「無效的方法應該沒有返回值」和第11行「不可見@interface爲ExpandingCell聲明瞭選擇器presentViewController:animated:completion」

我很盼望在這一點上的幫助。所以如果你有幫助,提前謝謝你。

+0

你檢查過文件嗎? – Andy 2014-12-03 01:41:37

+0

是的,這沒有幫助。 – Tstac4 2014-12-03 01:49:40

+0

你是如何知道addTarget方法的?它不在UICollectionViewCell的文檔中。 – Andy 2014-12-03 01:58:08

回答

0

這裏有很多問題。 第4行 - 您在didSelectItemAtIndexPath方法中,因此您知道用戶已經觸摸了單元格。你不應該需要連接目標行動。刪除此行並直接調用uploadPicture:。 第5行 - didSelectItemAtIndexPath是一個無效方法,因此您不應該嘗試返回單元格。刪除這一行。 第11行 - 錯誤表示您的uploadPicture方法不在視圖控制器中。因此它不能呈現視圖控制器。您需要將此方法移至您的視圖控制器或重構您的代碼,以便從視圖控制器中呈現。

0

貌似要實現以下目標:

  1. 用戶擁有的tableview,當用戶點擊查看錶行,應用程序呈現的圖像拾取
  2. 用戶從選擇數量的圖像庫
  3. 然後選擇的所有圖像都在其中嵌入的tableview

如果該假設是正確的擴展單元內的集合圖所示,你必須:

  1. 實施didSelectRowAtIndexPath方法的實現代碼如下代替的CollectionView
  2. 在這個方法中,調用uploadPicture方法的實現代碼如下控制器創建與的CollectionView細胞的
  3. 工具imagePickerController的didFinishPickingMediaWithInfo獲得所選圖像
  4. 通話的cellForRowAtIndexPath擁有選定的圖像。

希望這會有所幫助。

+0

我不像目標C那麼好,因爲我需要爲此而努力。所以我不確定你的意思在第一點。如果你有時間今天也許給我發電子郵件,並幫助我? ([email protected]) – Tstac4 2014-12-03 17:08:59