Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.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 在运行时更改UITableViewHeaderFooterView高度_Ios_Swift_Uitableview_Uitableviewsectionheader - Fatal编程技术网

Ios 在运行时更改UITableViewHeaderFooterView高度

Ios 在运行时更改UITableViewHeaderFooterView高度,ios,swift,uitableview,uitableviewsectionheader,Ios,Swift,Uitableview,Uitableviewsectionheader,我的目标是在运行时更改UITableView节标题高度。让我更具体一点。默认高度为44,但在触摸顶部之前滚动时,高度将为64。我已经创建了一个子类UITableViewHeaderFooterView,它使用自动布局 我试过了 var frame = sectionHeader.frame frame.size.height = 64 sectionHeader.frame = frame 而且 tableView.sectionHeaderHeight = 64 但对我来说什么都不管用。谁

我的目标是在运行时更改UITableView节标题高度。让我更具体一点。默认高度为44,但在触摸顶部之前滚动时,高度将为64。我已经创建了一个子类
UITableViewHeaderFooterView
,它使用自动布局

我试过了

var frame = sectionHeader.frame
frame.size.height = 64
sectionHeader.frame = frame
而且

tableView.sectionHeaderHeight = 64
但对我来说什么都不管用。谁能解释一下这个问题吗

  • 使用自动布局时,直接更改框架将不起作用
  • 要更改tableview节标题,需要实现委托方法并在更改后重新加载数据
  • 可选func tableView(tableView:UITableView,heightForHeaderInSection:Int)->CGFloat


    您不需要对页脚进行子类化来更改页脚的高度

  • 检查您是否仅将其高度设置为:(无委托方法)
  • tableView.sectionHeaderHeight=64

  • 检查是否在之后调用或在tableView上“重新加载数据()。或
  • [UIView SetAnimationEnabled:否]

    [tableView开始更新]

    [tableView EndUpdate]

    [UIView SetAnimationEnabled:是]


    只更改高度而不重新加载tableView。

    我认为您必须重新加载table view的整个部分,因为没有只更新部分标题的公共API

    self.isOnTop = true // or false
    tableView.reloadSections(NSIndexSet(index: 0), withRowAnimation: .None)
    
    并更改修改适当委托方法返回值的属性:

    func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        isOnTop ? 44 : 64
    }
    
    您还可以尝试以下方法,这些方法可以在不重新加载的情况下更新布局:

    tableView.beginUpdates()
    tableView.endUpdates()
    

    或者转到支持tableview行为的集合视图解决方案:

    @downvoter您能回答我的问题吗?也许苹果的示例代码可以帮助您:@muazhud谢谢。。让我仔细看看。谢谢,但是如果我重新加载该部分,那么我想要的动画将不会无缝。