单行显示的UITableView - 如何将另一行移动到带动画的显示区域?

时间:2011-12-01 19:52:21

标签: objective-c ios uitableview

我想为我的应用制作一个菜单,例如itunes中的Camera + app的底部菜单:http://itunes.apple.com/us/app/id329670577?mt=8(图2)。 这是一篇评论,时间为5分17秒:http://www.youtube.com/watch?v=ZNJzhyb7mNI#t=5m17s

我自定义UITableViewCell使一行包含带水平滚动的按钮数组。然后我创建一个带有自定义UITableViewCell菜单的UITableView。 我的问题:如何使用Camera +菜单等动画将另一行更改为可见区域。 谢谢!

2 个答案:

答案 0 :(得分:1)

我的解决方案: 我创建1 NSArray*以包含当前菜单名称:menuDataSourcemenuDataSource仅包含当前菜单。

-(UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
return [menuDataSource objectAtIndex:0];

}

当用户更改菜单时,我使用新菜单重新创建menuDataSource:

[internalTableView beginUpdates];
currentHorizonMenu = [[self.reusableCells objectAtIndex:menuIndex]retain];
menuDataSource = [NSMutableArray array];
[internalTableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationTop];
[menuDataSource addObject:currentHorizonMenu];
[internalTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:[NSIndexPath indexPathForRow:0 inSection:0]] withRowAnimation:UITableViewRowAnimationBottom];        
[internalTableView endUpdates];

self.reusableCells NSArray*包含所有菜单

答案 1 :(得分:0)

scrollToRowAtIndexPath:atScrollPosition:animated:发送到您的表格视图。有点像这样:

[self.menuTable scrollToRowAtIndexPath:someIndexPath
    atScrollPosition:UITableViewScrollPositionMiddle
    animated:YES];