2013-07-12 2 views
0

Я использовал GMGridView внутри своего приложения. Когда я меняю ориентацию, все в порядке, но если я снова ее сменю и войду в режим редактирования, все ячейки будут перехватываться, кроме видимого в нижнем правом углу. GmGridView добавлен как подчиненный контроллеру, а также не занимает весь экран. Я пробовал уничтожить его и воссоздать его, когда происходит уведомление о ротации ... такое же поведение. Кроме того, я создал пользовательский вид с несколькими кнопками и надписями, которые я установил как contentView от GMGridViewCell.GMGridViewCell не встряхивает

вот код cellForItemAtIndex

- (GMGridViewCell *)GMGridView:(GMGridView *)gridView cellForItemAtIndex:(NSInteger)index { 
    UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation]; 
    GMGridViewCell *cell = [gmGridView dequeueReusableCell]; 

    if (!cell) { 
     CGSize cellSize = [self GMGridView:gmGridView sizeForItemsInInterfaceOrientation:orientation]; 

     cell = [[GMGridViewCell alloc] initWithFrame:CGRectMake(0, 0, cellSize.width, cellSize.height)]; 
     cell.deleteButtonIcon = [UIImage imageNamed:@"delete_button"]; 
     cell.deleteButtonOffset = CGPointMake(0, 0); 


    }  

    CustomGridViewCell *gridViewContent = [CustomGridViewCell getNewGridViewCellForOrientation:orientation]; 
    ContentData *data = [wishlistContentArray objectAtIndex:index]; 
    [gridViewContent setuprWithContent:data]; 
    cell.contentView = gridViewContent; 

    if (!gridViewContent.delegate) 
     gridViewContent.delegate = self; 

    return cell; 
} 

ответ

2

Существует ошибка на GMGridView, когда он вычисляет количество видимых ячеек.

В loadRequiredItems есть эти две строки кода

NSRange rangeOfPositions = [self.layoutStrategy rangeOfPositionsInBoundsFromOffset: self.contentOffset]; 
NSRange loadedPositionsRange = NSMakeRange(self.firstPositionLoaded, self.lastPositionLoaded - self.firstPositionLoaded); 

Вы должны изменить диапазон так, он возвращает наименьшее число, кратное числа элементов на ячейку.

Например, если у вас есть 2 ячейки в строке, то теперь код вернет диапазон {0,5}, но он должен быть {0,6}.

+0

спасибо, что решил это :) –

Смежные вопросы