限制 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 的页眉和页脚的视图宽度的主要内容,如果未能解决你的问题,请参考以下文章