Ios 更改集合内的tableview标题高度
如何使Ios 更改集合内的tableview标题高度,ios,swift,uitableview,uicollectionview,Ios,Swift,Uitableview,Uicollectionview,如何使UITableView内部UICollectionView的标题大小动态。我以前使用过这段代码,在UIViewController中使UITableView标题动态 override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() sizeHeaderToFit() } func sizeHeaderToFit() { let headerView = que
UITableView
内部UICollectionView
的标题大小动态。我以前使用过这段代码,在UIViewController中使UITableView
标题动态
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
sizeHeaderToFit()
}
func sizeHeaderToFit() {
let headerView = questionTableView.tableHeaderView!
headerView.setNeedsLayout()
headerView.layoutIfNeeded()
let height = headerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
var frame = headerView.frame
frame.size.height = height
headerView.frame = frame
questionTableView.tableHeaderView = headerView
}
但不能在UICollectionViewCell
类中使用此代码。它说“UICollectionViewCell”没有成员viewDidLayoutSubviews
那么,如何在collectionView中创建tableView的动态标题高度呢。我在故事板中的
UITableView
中拖动了顶部的UIView
(用于headerview),最重要的消息是您需要调用UICollectionViewCell.swift文件中UITableViewController的所有委托和数据源方法
var intDynamicHeight = CGFloat()
func sizeHeaderToFit() -> CGFloat
{
let headerView = questionTableView.tableHeaderView!
//headerView.setNeedsLayout()
//headerView.layoutIfNeeded()
let height = headerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
self.intDynamicHeight = height
// var frame = headerView.frame
// frame.size.height = height
// headerView.frame = frame
// questionTableView.tableHeaderView = headerView
return height
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
{
return self.sizeHeaderToFit()
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
{
let headerView = questionTableView.tableHeaderView!
let viewNewIN = UIView.init(frame: CGRect(x: 0, y: 0, width: <Your desire Width>, height: self.intDynamicHeight))
headerView.isHidden = false
var frame = headerView.frame
frame.size.height = height
headerView.frame = frame
viewNewIN.addSubview(headerView)
return viewNewIN
}
var intDynamicHeight=CGFloat()
func size headertofit()->CGFloat
{
让headerView=questionTableView.tableHeaderView!
//headerView.setNeedsLayout()
//headerView.layoutIfNeeded()
让高度=headerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)。高度
self.intDynamicHeight=高度
//var frame=headerView.frame
//frame.size.height=高度
//headerView.frame=frame
//questionTableView.tableHeaderView=headerView
返回高度
}
func tableView(u tableView:UITableView,heightForHeaderInSection:Int)->CGFloat
{
返回self.sizeHeaderToFit()
}
func tableView(tableView:UITableView,viewForHeaderInSection:Int)->UIView?
{
让headerView=questionTableView.tableHeaderView!
让viewNewIN=UIView.init(帧:CGRect(x:0,y:0,宽度:,高度:self.intDynamicHeight))
headerView.ishiden=false
var frame=headerView.frame
frame.size.height=高度
headerView.frame=frame
viewNewIN.addSubview(headerView)
返回viewNewIN
}
并在初始阶段隐藏标题视图,而不是在
viewForHeaderInSection
方法中显示。最重要的消息是,您需要调用UICollectionViewCell.swift文件中UITableViewController的所有委托和数据源方法
var intDynamicHeight = CGFloat()
func sizeHeaderToFit() -> CGFloat
{
let headerView = questionTableView.tableHeaderView!
//headerView.setNeedsLayout()
//headerView.layoutIfNeeded()
let height = headerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
self.intDynamicHeight = height
// var frame = headerView.frame
// frame.size.height = height
// headerView.frame = frame
// questionTableView.tableHeaderView = headerView
return height
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
{
return self.sizeHeaderToFit()
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
{
let headerView = questionTableView.tableHeaderView!
let viewNewIN = UIView.init(frame: CGRect(x: 0, y: 0, width: <Your desire Width>, height: self.intDynamicHeight))
headerView.isHidden = false
var frame = headerView.frame
frame.size.height = height
headerView.frame = frame
viewNewIN.addSubview(headerView)
return viewNewIN
}
var intDynamicHeight=CGFloat()
func size headertofit()->CGFloat
{
让headerView=questionTableView.tableHeaderView!
//headerView.setNeedsLayout()
//headerView.layoutIfNeeded()
让高度=headerView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)。高度
self.intDynamicHeight=高度
//var frame=headerView.frame
//frame.size.height=高度
//headerView.frame=frame
//questionTableView.tableHeaderView=headerView
返回高度
}
func tableView(u tableView:UITableView,heightForHeaderInSection:Int)->CGFloat
{
返回self.sizeHeaderToFit()
}
func tableView(tableView:UITableView,viewForHeaderInSection:Int)->UIView?
{
让headerView=questionTableView.tableHeaderView!
让viewNewIN=UIView.init(帧:CGRect(x:0,y:0,宽度:,高度:self.intDynamicHeight))
headerView.ishiden=false
var frame=headerView.frame
frame.size.height=高度
headerView.frame=frame
viewNewIN.addSubview(headerView)
返回viewNewIN
}
并在初始阶段隐藏标题视图,而不是在
viewForHeaderInSection
方法中显示。您不能在UICollectionViewCell
中使用viewdilayoutsubview
,因为它是UIViewController
的一部分。我如何对嵌入UICollectionView中的UItableView执行类似功能@PalakMobileteMreaderId您是否尝试在func tableView的帮助下创建标题视图(tableView:UITableView,ViewForHeaderSection:Int)->UIView?{}是的,它在UITableView中创建其他视图?例如:故事板中的标题视图,此代理的标题视图高度,然后显示单元格如果您共享更多表视图的代码,则显示单元格会更好,这样我可以更好地帮助您。您不能在UICollectionViewCell
中使用viewDidLayoutSubviews
,因为它是UIViewController
的一部分。我如何为嵌入UICollectionView@PalakMobileteMreaderId中的UItableView执行类似功能尝试在func tableView的帮助下创建标题视图(tableView:UITableView,viewForHeaderInSection节:Int)->UIView?{}是的,它在UITableView中创建其他视图?例如:故事板中的页眉视图,该代理的页眉视图高度,然后显示单元格。如果您共享更多的表视图代码,则显示单元格会更好,这样我可以更好地帮助您。