UITableViewStyleGrouped包含Grouped和Plain的标题

时间:2011-04-21 07:10:59

标签: iphone objective-c cocoa-touch

我将UITableViewController子类化,并使用GroupedStyle设置UITableView作为子视图。当我在模拟器中运行我的项目时,节标题出现两次:在GroupedStyle和PlainStyle中。有谁知道为什么会这样?我附上了我认为可能是下面罪魁祸首的功能。

2 section headers in Simulator

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
[self setup];
self.title=@"Literature";
UITableView *tableview = [[UITableView alloc]initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
tableview.scrollEnabled=NO;
tableview.delegate=self;
tableview.dataSource=self;
[self.view addSubview:tableview];
[tableview release];
return self;
}

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
NSInteger inte=2;
switch (section) {
    case 0:
        inte=2;
        break;
    case 1:
        inte=4;
        break;
}
return  inte;
}

-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
return 2;
}
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{
NSString *temp;
switch (section) {
    case 0:
        temp=@"Literature";
        break;
    case 1:
        temp=@"Online";
        break;
}
return temp;
}

1 个答案:

答案 0 :(得分:1)

UITableViewController为您创建一个表视图,并将其设置为名为tableView的属性。它还将委托和数据源设置为自身。因此,您必须执行这些操作的所有代码行都是多余的。

问题来自于创建新的表视图并将其添加为子视图。因此,您现在有2个表视图,您作为子视图添加的视图和作为tableView属性创建的UITableViewController。

我怀疑你得到的显示是两个重叠的表视图的结果。其中一个表视图是您设置为GroupedStyle的视图,另一个是默认的PlainStyle。

您可以参考UITableViewController class documentation