2013-04-30 72 views
0

我想将自定义视图添加到每个UITableView部分的标题中。我正在使用这个委托方法来返回所需的视图。它的工作部分是因为它导致单元部分被分散开来,就好像在那里有一个标题一样,然而文本或UIButton实际上都没有出现。我知道这个方法正在被调用,因为我在方法中放置了一个NSLog来查看它是否是。我是否犯了一个愚蠢的错误,或者这是不是这样做的正确方法?在UITableView中设置自定义标题视图

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
    { 
     UIView* customView = [[UIView alloc]initWithFrame:CGRectMake(0.0, 0.0, tableView.bounds.size.width, 44.0)]; 
     customView.backgroundColor = [UIColor clearColor]; 

     UILabel * headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 44.0)]; 
     headerLabel.textColor = [UIColor darkGrayColor]; 
     headerLabel.font = [UIFont boldSystemFontOfSize:16]; 


     UIButton *headerButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
     // add button to right corner of section 

     return customView; 
     switch (section) { 
      case 0: 
       headerLabel.text = @"Team Name"; 
       break; 
      case 1: 
       headerLabel.text = @"Captain"; 
       break; 
      case 2: 
       headerLabel.text = @"Wicket Keeper"; 
       break; 
      case 3: 
       headerLabel.text = @"Batting Order"; 
       headerButton.center = CGPointMake(160.0, 22.0); 
       headerButton.backgroundColor = [UIColor blueColor]; 
       headerButton.tag = section; 
       [headerButton addTarget:self action:@selector(enableCellReordering:) forControlEvents:UIControlEventTouchUpInside]; 
       [customView addSubview:headerButton]; 
       break; 
      default: 
       break; 
     } 

     [customView addSubview:headerLabel]; 
     return customView; 
    } 
+0

您是否实现了'tableView:heightForHeaderInSection:'委托方法?如果你实现'tableView:viewForHeaderInSection:',这是必需的。 – rmaddy 2013-04-30 18:08:07

+0

是:'返回44.0' – simonthumper 2013-04-30 18:08:50

+7

为什么你返回'customView'两次? – 2013-04-30 18:10:12

回答

1

returncustomview两次,switch语句后一个switch语句一个前两次只需要删除return customView;switch (section)

2

switch语句之前发现了它,你return customView;

+0

谢谢,你的眼睛比我更锐利哈哈! – simonthumper 2013-04-30 18:11:31

0
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 18)]; 
    /* Create custom view to display section header... */ 
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 5, tableView.frame.size.width, 18)]; 
    [label setFont:[UIFont boldSystemFontOfSize:12]]; 
    NSString *string =[list objectAtIndex:section]; 
    /* Section header is in 0th index... */ 
    [label setText:string]; 
    [view addSubview:label]; 
    [view setBackgroundColor:[UIColor colorWithRed:166/255.0 green:177/255.0 blue:186/255.0 alpha:1.0]]; //your background color... 
    return view; 
} 
+0

欢迎来到SO,@ user3836191。习惯上提供关于代码功能的解释,以便其他人更容易理解它。 – 2014-07-24 12:16:40

0

怎么样的自定义页眉origin.x和origin.y? 当我将它们设置为非零,但它仍然在旁边边缘。