【问题标题】:ios: uitableview section header anchor to top of tableios:uitableview部分标题锚定到表格顶部
【发布时间】:2012-11-06 10:41:13
【问题描述】:

我正在尝试制作一个包含多个部分的表格(如联系人应用程序) 一切顺利,我在每个部分的顶部创建了自定义部分标题,显示代表该部分的字符..问题是我希望它就像 Contact 一样,标题停留在顶部直到下一个标题与它一起折叠。 ..怎么会这样

我正在使用以下代码(让您更容易弄清楚

    - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{

    // Return the number of sections.
   return [stateIndex count];
}



- (UIView *)tableView:(UITableView *)aTableView viewForHeaderInSection:(NSInteger)section
{

    UILabel *sectionHeader = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 40)];
    sectionHeader.backgroundColor = [UIColor clearColor];
    sectionHeader.font = [UIFont boldSystemFontOfSize:18];
    sectionHeader.textColor = [UIColor whiteColor];
    sectionHeader.text = [stateIndex objectAtIndex:section];
    sectionHeader.textAlignment=UITextAlignmentCenter;
    return sectionHeader;
}
//---set the index for the table---
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
    return stateIndex;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

    //---get the letter in each section; e.g., A, B, C, etc.---
    NSString *alphabet = [stateIndex objectAtIndex:section];

    //---get all states beginning with the letter---
    NSPredicate *predicate =
    [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@", alphabet];
    NSArray *states = [resultPoets filteredArrayUsingPredicate:predicate];

    //---return the number of states beginning with the letter---
    return [states count];

}


- (UITableViewCell *)tableView:(UITableView *)aTableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    static NSString *CellIdentifier = @"Cell";
    PoemsCell *cell = [aTableView dequeueReusableCellWithIdentifier:CellIdentifier];
    int row = indexPath.row;




    //---get the letter in the current section---
    NSString *alphabet = [stateIndex objectAtIndex:[indexPath section]];

    //---get all states beginning with the letter---
    NSPredicate *predicate =
    [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@", alphabet];
    NSArray *states = [resultPoets filteredArrayUsingPredicate:predicate];

    if ([states count]>0) {
        //---extract the relevant state from the states object---
        NSString *cellValue = [states objectAtIndex:row];

        cell.poemText.text = cellValue;

    }



    return cell;
}

【问题讨论】:

    标签: ios uitableview sectionheader


    【解决方案1】:

    如果您使用“普通”而不是“分组”的表格视图样式,这应该会自动工作。

    来自文档:

    UITableViewStylePlain: 一个普通的表格视图。任何节标题或 页脚显示为内联分隔符并在表格时浮动 视图被滚动。

    UITableViewStyleGrouped: 一个表格视图,其部分呈现不同 行组。部分页眉和页脚不浮动。

    【讨论】:

    • 别忘了使用 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;如果您希望每个标题具有不同的高度。
    • 哦,我的这就像一个完美的答案和完美的评论......祝福你们俩
    • 是否可以修改“Plain”以显示标题部分,即使我已经滚动到不同的部分?我希望将标题聚合到顶部,因为我可以折叠/展开它们。如果表格非常大,这有助于在它们之间导航。
    • @LyricalPanda:我不知道。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多