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]