Rud*_*ger 3 iphone uitableview nsarray
我有一个包含许多部分的表视图,这些部分的标题只是AZ和#就像在iPhone地址簿App中一样.我已经实现了sectionIndexTitlesForTableView来快速移动到特定的字母,基本上只返回一个字母A - Z和#的数组.
如果我的列表总是包含字母表中每个字母的一个项目,但它不会,这会使部分索引标题搞砸了,因为如果第3个部分是D(即如果有的话),在列表中点击C可能会转到D C)部分没有任何内容.
我知道我可以在sectionIndexTitlesForTableView中返回数组,只有字母是部分,但这看起来有点奇怪,与iPhone地址簿应用程序的功能不同.
我怎么能纠正这个?
如果您只有AZ的部分A,C,F,S,T和部分索引标题,我不会看到@Rudiger的方法是如何工作的.使用MPMediaQuery时可能会出现这种情况.
为了解决这个问题,我已经按如下方式实现了这个方法,如果你要查找的那个不存在,tableview将滚动到正确的部分或下一个.
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index
{
NSString *sectionTitle = nil;
NSComparisonResult result;
int i;
for(i = 0; i < tableView.numberOfSections; i++)
{
sectionTitle = [self tableView:tableView titleForHeaderInSection:i];
result = [title compare:sectionTitle];
if(result != NSOrderedDescending)
break;
}
return (MIN (i, (tableView.numberOfSections - 1)));
}
Run Code Online (Sandbox Code Playgroud)
UPDATE
更改了返回值以修复Eric D'Souza所描述的情况.
| 归档时间: |
|
| 查看次数: |
4443 次 |
| 最近记录: |