限制 UItableView 的页眉和页脚的视图宽度

Posted

技术标签:

【中文标题】限制 UItableView 的页眉和页脚的视图宽度【英文标题】:limit the width of view for header and view for footer of a UItableView 【发布时间】:2013-12-26 07:01:01 【问题描述】:

在下面的屏幕截图中,蓝色线条是我的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;

【问题讨论】:

【参考方案1】:

您可以在 UIView 上方添加蓝色的 UIView,并将其背景颜色设置为 Clear Color

-(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 样式。

【讨论】:

【参考方案2】:

我认为最好的方法是在 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;

【讨论】:

【参考方案3】:

设置标题和食物的高度

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section

   return 58;

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section

   return 58;

【讨论】:

但是你的标题视图和食物视图高度将是 58,它不适合高度 1。

以上是关于限制 UItableView 的页眉和页脚的视图宽度的主要内容,如果未能解决你的问题,请参考以下文章

如何在Excel中设置页眉和页脚

UITableView 页眉和页脚高度与 Storyboard 布局不对应

在 iPhone 中显示带有页眉和页脚的 .doc 文件

动画 UITableView 的页眉和页脚

UICollectionView 页眉和页脚视图

在 Codeigniter 中使用页眉和页脚的最佳方法