2012-06-26 46 views
1

我正在嘗試iCarouselMultiple Carousel示例。 在這裏,在我的數組,我和的NSMutableDictionary添加圖像:NSMutableArray索引混合起來

我有兩個:(myImages和myImages2在旋轉木馬我的兩個插槽在viewDidLoad中加載)

self.myImages = [NSMutableArray array]; 
for(int i = 0; i <= 10; i++) 
{ 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDir = [paths objectAtIndex:0]; 

    NSString *savedPath = [documentsDir stringByAppendingPathComponent:[NSString stringWithFormat:@"myImages%d.png", i]]; 
    if([[NSFileManager defaultManager] fileExistsAtPath:savedPath]){ 
     NSMutableDictionary *container = [[NSMutableDictionary alloc] init]; 
     [container setObject:[UIImage imageWithContentsOfFile:savedPath] forKey:@"image"]; 
     [container setObject:[NSNumber numberWithInt:i] forKey:@"index"]; 
     [images addObject:container]; 
     [container release]; // if not using ARC 
    } 
} 
在我iCarousel

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view 
{ 
    if (carousel == carousel1) 
    { 
     NSDictionary *obj = [items1 objectAtIndex:index]; 
     view = [[UIImageView alloc] initWithImage:[obj objectForKey:@"items1"]]; 
     view.tag = index; 
    }else 
    { 
     NSDictionary *obj = [items2 objectAtIndex:index]; 
     view = [[UIImageView alloc] initWithImage:[obj objectForKey:@"items2"]]; 
     view.tag = index; 
    } 

    return view; 
} 

在另一視圖中,這些陣列也被加載,則用戶有機會選擇一個圖像進行比較,以與,

當用戶選擇一個與它的標籤等價的int圖像傳遞到我的兩個Carousel所在的位置。

這是我如何對它們進行比較:

NSInteger image = [prefs integerForKey:@"image"]; 
NSInteger image1 = [prefs integerForKey:@"image2"]; 

     if (image == [(UIImageView*)[self.carousel1 currentItemView] tag] || image2= [(UIImageView*)[self.carousel2 currentItemView] tag] ||) { 

我刪除索引是這樣的:

NSInteger index = carousel1.currentItemIndex; 
    [carousel1 removeItemAtIndex:index animated:YES]; 
    [items1 removeObjectAtIndex:index]; 

我想我刪除它錯了,因爲該指數的arent更新,是什麼我想保持其索引不調整像這樣的圖像在這裏:

Deleting in NSMutableArray

+0

看着這篇文章和你的其他文章,我看不到問題。在標準動態數組中,當一個項目被刪除時,所有其他項目的索引都會被更新。在這種情況下,你永遠不應該有這樣一種情況,即你從列表0,1,2,3中刪除了項目1,並以0,2,3結束。正確的結果數組是0,1,2! – trumpetlicks

+0

但我真的有問題比較採摘imageView(標籤視圖)與我的carouselVIew,所以我認爲我的數組有問題,我真的不知道如何解決它。 – Bazinga

+0

這真的是你的代碼,因爲你有一個額外的|| (或)在您的比較結尾處if如果 – trumpetlicks

回答

0

如果我明白你現在要做的是什麼,那就是移動兩個轉盤直到中間的轉盤匹配,然後不要讓索引簡單地消失,那麼你可以不去除數組中的項目,填充您嘗試使用零圖像刪除的位置(或您選擇的後臺有效圖像)以及標記它的標記已經匹配。

這一切當然取決於我對你想要什麼的理解是有效的。

+0

不是中間,但用戶從另一個視圖中選擇圖像/索引。像用戶選擇然後刪除。你是什​​麼意思的無圖像?怎麼樣? – Bazinga

+0

如果將UIImageView設置爲零,或者在其他文章中,您有藍色背景,則可以使用UIImageView顯示任何內容,只需使用藍色背景(與背景相同)即可獲得簡單圖像,從而將其分配給所有已刪除的圖像。 – trumpetlicks

+0

另外,在看到傳送帶之前,用戶將如何選擇圖像以從您的傳送帶上刪除?你說他們應該從另一個角度挑選一張圖片。再一次,仍然試圖更好地理解你正在努力完成的事情! – trumpetlicks