Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/120.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UITableView在单元格下方扩展不同的背景色_Ios_Iphone_Objective C_Uitableview - Fatal编程技术网

Ios UITableView在单元格下方扩展不同的背景色

Ios UITableView在单元格下方扩展不同的背景色,ios,iphone,objective-c,uitableview,Ios,Iphone,Objective C,Uitableview,我有一个UITableView,我给出了一个绿色背景的headerView。我还为UITableView提供了相同的绿色背景色,这样当tableView被拉下时,它感觉就像tableView上方的一种看不见的颜色。工作完美 问题是我的tableView只有4行,下面又显示了绿色 如何在行下方显示白色,以便在下拉tableView时只看到绿色背景色?正如我在这些评论中所说,这样,headerView将位于导航栏下,如果您下拉tableView,您将看到headerView绿色。因此,您可以为ta

我有一个
UITableView
,我给出了一个绿色背景的
headerView
。我还为
UITableView
提供了相同的绿色背景色,这样当
tableView
被拉下时,它感觉就像
tableView
上方的一种看不见的颜色。工作完美

问题是我的
tableView
只有4行,下面又显示了绿色


如何在行下方显示白色,以便在下拉
tableView
时只看到绿色背景色?

正如我在这些评论中所说,这样,headerView将位于导航栏下,如果您下拉tableView,您将看到headerView绿色。因此,您可以为tableView设置白色: (我测试了它并开始工作)


您可以添加第五个没有内容的单元格,并将其设置为400点高,并限制表格contentView的大小,以便无法滚动到该单元格的底部

-(void)viewWillLayoutSubviews {
    self.tableView.contentSize = CGSizeMake(self.tableView.frame.size.width, 500);
}

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    CGFloat h = (indexPath.row == 4)? 400:44;
    return h;
}

将contentSize设置放入viewWillLayoutSubviews可确保在旋转设备时将其重置为该值

您可以添加额外的俯视图,如下所示:


与公认答案相同-在Swift 5中:

var frame : CGRect = self.tableView.bounds
frame.origin.y = -frame.size.height

let bgView : UIView = UIView.init(frame: frame)
bgView.backgroundColor = UIColor.green

self.tableView.insertSubview(bgView, at: 0)
还要添加以下代码(在上述代码之后),以确保其适用于其他大小的设备:

bgView.translatesAutoresizingMaskIntoConstraints = true
bgView.autoresizingMask = [UIView.AutoresizingMask.flexibleWidth]

也许会添加一个白色的tableview footerView?@johan尝试过,但它只生成一块白色(视图),而不是像我所希望的那样在单元格下方无限大。谢谢你提出这个问题。我和你的处境一样。对不起,我想你误解了。细胞是白色的。TableView背景色和headerView为绿色。下面的单元格也是绿色的,因为这是tableView的背景色。“但我希望牢房下面也是白色的。”尼克·哈伯德有一个误解。你只需要手机和headerview绿色,对吗?桌子的其余部分是白色的?不,细胞是白色的。请用示例图像查看我的更新问题。@Nic Hubbard ok,如果您创建了更高的headerview,但只显示您想要的内容,例如header的视图高150px,在tableview的委托方法中返回50px?我不尝试这个,但如果这个工作,你可以给白色tableview@llario听起来是个好主意,但是没有委托方法来设置
tableView
标题高度,它只是基于您设置该属性的视图高度。已解决!谢谢你的回答!
var frame : CGRect = self.tableView.bounds
frame.origin.y = -frame.size.height

let bgView : UIView = UIView.init(frame: frame)
bgView.backgroundColor = UIColor.green

self.tableView.insertSubview(bgView, at: 0)
bgView.translatesAutoresizingMaskIntoConstraints = true
bgView.autoresizingMask = [UIView.AutoresizingMask.flexibleWidth]