需要添加一个视图作为TableHeader?

时间:2014-04-25 13:04:37

标签: ios uitableview xcode5

是否可以加载高度为672的View作为TableView标题?我添加了它但是我无法滚动并查看tableview单元格详细信息。  我使用了代码

ACCRemainderView *header =  [ACCRemainderView customHeaderView];

[self.tableView setTableHeaderView:header];

在剩余视图中

+ (id)customHeaderView
{
    ACCRemainderView *customView = [[[NSBundle mainBundle] loadNibNamed:@"ACCRemainderView" owner:nil options:
                                     nil] lastObject];

    //make sure customView is not nil or the wrong class!        
    if ([customView isKindOfClass:[ACCRemainderView class]]) {
        return customView;
    } else {
        return nil;
    }
}

2 个答案:

答案 0 :(得分:1)

尝试在- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section中实施UITableViewController并返回[ACCRemainderView customHeaderView]

答案 1 :(得分:0)

设置tableHeaderView是最佳选择。我测试过它的确有效。

ViewForHeaderInSection不能,因为在此视图标题的高度大于表格的高度。

你无法滚动,我认为你的tableView与另一个视图重叠。

- (void)viewDidLoad
{
[super viewDidLoad];

_tableView.dataSource = self;
_tableView.delegate = self;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
NSString *title=[self tableView:tableView titleForHeaderInSection:section];
if ( !title )
    return nil;


UIView *view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 500)];
view.backgroundColor = [UIColor greenColor];
return view;
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 500;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 2;
}

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 2;
}

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return @"abcd";
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return 50;
}


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = (UITableViewCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = @"a";
return cell;
}