Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.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_Swift_Uitableview_Autolayout_Ios Animations - Fatal编程技术网

Ios UITableView开始更新结束更新不使用自动布局

Ios UITableView开始更新结束更新不使用自动布局,ios,swift,uitableview,autolayout,ios-animations,Ios,Swift,Uitableview,Autolayout,Ios Animations,这是我的屏幕。考虑第一行直到重复切换: 以下是开关动作: /** Function name : repeatAction Repeat UISwitch action **/ @IBAction func repeatAction(sender: UISwitch) { if sender.isOn { cellDateTime.constrain_viewRepeatHeight.constant = 80 UIView.transition

这是我的屏幕。考虑第一行直到重复切换:

以下是开关动作:

/**
Function name : repeatAction
Repeat UISwitch action
**/
@IBAction func repeatAction(sender: UISwitch)
{
    if sender.isOn
    {
        cellDateTime.constrain_viewRepeatHeight.constant = 80
        UIView.transition(with: self.cellDateTime.view_repeat, duration: 0.6, options: .transitionCrossDissolve, animations: {() -> Void in
                self.cellDateTime.view_repeat.isHidden = false
        }, completion: { _ in })
    }
    else
    {
        UIView.transition(with: self.cellDateTime.view_repeat, duration: 0.6, options: .transitionCrossDissolve, animations: {() -> Void in
                self.cellDateTime.view_repeat.isHidden = true
            }, completion: { _ in
                self.cellDateTime.constrain_viewRepeatHeight.constant = 0
        })
    }

let offset = self.table_InitialData.contentOffset
self.table_InitialData.layer.removeAllAnimations()
self.table_InitialData.beginUpdates()
self.table_InitialData.endUpdates()
self.table_InitialData.contentOffset = offset
}  
当开关第一次处于接通状态时,工作正常:

现在,当开关再次处于关闭状态时,理想情况下,它应该显示在第一个屏幕截图中。但是,它看起来是这样的:


我使用自动布局。只需提及,之前我在一个简单的控制器视图中使用了相同的控件,而且效果很好。但是自从我把它们放在UITableView中,它就变得很奇怪了。

@vadian:因为在这种情况下,行的高度要更新,替代方案是什么?尝试将包含时间和>符号的
ui视图的垂直和水平
contentHugging
优先级设置为1000,并为单元格中最底部的视图提供
=
约束,而不是
=
约束。(如果尚未使用,请考虑使用
UITableViewAutomaticDimensions
)。如果不知道约束在单元格内是如何布置的,那么最好粗略猜测一下:)@vadian-来自苹果的文档:“您也可以使用这个方法-beginUpdate()-然后是endUpdates()方法来设置行高变化的动画,而无需重新加载单元格。”它通常用于完成OP试图完成的任务。@Nitish-您能将代码简化为可复制的示例吗?帮助找出不太正确的地方会容易得多。@DonMag:我尝试了刚开始的更新/结束的更新。与滚动位置丢失相同的问题。