限制UItableView的页脚的标题和视图的视图宽度

时间:2013-12-26 07:01:02

标签: ios objective-c uitableview

enter image description here

在下面的屏幕截图中,蓝色线条是我tableView部分的页眉和页脚(在tableView中,我将行视为部分)。

但是,我希望蓝线恰好在tableView的行的下方(与行的宽度相同)。知道该怎么做吗?

-(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *headerView =  [[UIView alloc] initWithFrame:CGRectMake(0, 0, 333, 1)] ;
    headerView.backgroundColor = [UIColor blueColor];
    return headerView;
}

-(UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section
{
    UIView *footerView =  [[UIView alloc] initWithFrame:CGRectMake(0, 0, 333, 1)] ;
    footerView.backgroundColor = [UIColor blueColor];
    return footerView;
}

3 个答案:

答案 0 :(得分:3)

您可以在UIView上方添加蓝色UIView,将背景颜色设置为“清除颜色”

-(UIView*)tableView:(UITableView*)tableView viewForFooterInSection:(NSInteger)section
{

UIView *dummyfooterView =  [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 2)] ;
dummyfooterView.backgroundColor = [UIColor clearColor];

// Widht should be less than dummyfooterView
UIView *footerView =  [[UIView alloc] initWithFrame:CGRectMake(10, 0, 320-20, 2)] ;
footerView.backgroundColor = [UIColor blueColor];
[dummyfooterView addSubview:footerView];
return dummyfooterView;
}

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

我不确定,希望这对你有所帮助!输出将如下屏幕。我在这里使用了Grouped tableview样式。

enter image description here

答案 1 :(得分:0)

我认为最好的方法是在indexpath

行的单元格底部添加1px视图
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    static NSString *CellIdentifier = @"MessageBoxCell";
    LGMessageBoxCell *cell = (LGMessageBoxCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    UIView *headerView =  [[UIView alloc] initWithFrame:CGRectMake(0, cell.fram.size.height - 1, cell.fram.size.width, 1)] ;
   headerView.backgroundColor = [UIColor blueColor];

    cell.backgroundView = headerView;
    return cell;
}

答案 2 :(得分:-1)

设置页眉和页脚的高度

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