Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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 更改集合内的tableview标题高度_Ios_Swift_Uitableview_Uicollectionview - Fatal编程技术网

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中创建其他视图?例如:故事板中的页眉视图,该代理的页眉视图高度,然后显示单元格。如果您共享更多的表视图代码,则显示单元格会更好,这样我可以更好地帮助您。