わかりましたので、何が起こっているかの写真を追加しました。これは、問題をもう少しよく視覚化するのに役立つかもしれません.
「Shopping & Deals」セクションの画像をクリックすると、アイテムまたはセルのリストがドロップダウンします。ただし、ご覧のとおり、「Shopping & Deals」画像の下にまだいくつかのセルが隠されています。コードは次のとおりです。
- (void) sectionOpened : (NSInteger) section{
SectionInfo *array = [self.sectionInfoArray objectAtIndex:section];
array.open = YES;
//Google PageView tracker
self.trackedViewName = [NSString stringWithFormat:@"Find Things To Do -- %@",array.category.name];
//Mobile Apptracking track event
[[MobileAppTracker sharedManager] trackActionForEventIdOrName:[NSString stringWithFormat:@"Find Things To Do -- %@",array.category.name] eventIsId:NO];
NSInteger count = [array.category.list count];
NSMutableArray *indexPathToInsert = [[NSMutableArray alloc] init];
for (NSInteger i = 0; i<count;i++)
{
[indexPathToInsert addObject:[NSIndexPath indexPathForRow:i inSection:section]];
}
NSMutableArray *indexPathsToDelete = [[NSMutableArray alloc] init];
NSInteger previousOpenIndex = self.openSectionIndex;
if (previousOpenIndex != NSNotFound)
{
SectionInfo *sectionArray = [self.sectionInfoArray objectAtIndex:previousOpenIndex];
sectionArray.open = NO;
NSInteger counts = [sectionArray.category.list count];
[sectionArray.sectionView toggleButtonPressed:FALSE];
for (NSInteger i = 0; i<counts; i++)
{
[indexPathsToDelete addObject:[NSIndexPath indexPathForRow:i inSection:previousOpenIndex]];
}
}
UITableViewRowAnimation insertAnimation;
UITableViewRowAnimation deleteAnimation;
if (previousOpenIndex == NSNotFound || section < previousOpenIndex)
{
insertAnimation = UITableViewRowAnimationTop;
deleteAnimation = UITableViewRowAnimationBottom;
}
else
{
insertAnimation = UITableViewRowAnimationBottom;
deleteAnimation = UITableViewRowAnimationTop;
}
[atableView beginUpdates];
[atableView insertRowsAtIndexPaths:indexPathToInsert withRowAnimation:insertAnimation];
[atableView setContentOffset:CGPointMake(0, self.view.bounds.size.height)];
[atableView deleteRowsAtIndexPaths:indexPathsToDelete withRowAnimation:deleteAnimation];
[atableView endUpdates];
self.openSectionIndex = section;
}
コードの一番下を見ると、次のようになっています。
[atableView setContentOffset:CGPointMake(0, self.view.bounds.size.height)];
これにより、y 境界に従ってビューがオフセットされます。この理由は、写真を見ると、「生産性」セクションをクリックすると、セルがビューを通過してドロップダウンし、セルが実際に入力されたかどうかがわからないため、コンテンツをオフセットするとビューがプッシュされたためです。それらの細胞が現れるように。ここでの問題は、[Shopping & Deals] をクリックすると、セルがセクションの下にハングアップすることです。誰もこれに取り組む方法について何か考えがありますか?