滚动时是否可以看到UITableViewCell? (斯威夫特3)

时间:2016-11-25 01:06:24

标签: ios swift uitableview

滚动时是否可以在屏幕上显示单个UITableViewCell(例如,向下滚动时,单元格应始终在屏幕顶部保持可见状态)。我隐含地询问我是否可以使用单元格进行此操作,所以不要打扰我建议我应该使用表格视图页眉或页脚,因为我在这个网站上被告知不可能在页脚或页眉视图中制作视图动画,我真的需要能够在表格视图内制作子视图(显然只能在单元格中完成)。

所以重新说一下:当你向上或向下滚动时,是否可以以任何方式将单元格保持在表格视图中?如果没有,是否有一个'技巧'来动画页脚或标题内的视图?因为就像我说的那样,我被告知没有'合法'的方法来做到这一点。

如果这是错误的,请纠正我。谢谢!

更新 为了纠正我之前做过的一些评论:似乎可以在页脚视图中为子视图设置动画,但它的工作方式与在表视图中设置动画的方式不同,所以如果有人知道如何在内部提交动画一个页脚视图,随意放弃一些建议。调用表视图的reloadData()方法适用于表视图单元格,但页脚视图完全忽略UIView.animate(withDuration:),只是立即显示布局更改而不动画它们。

更新

if self.didTapOnButton == true {
        self.view.layoutIfNeeded()
        UIView.animate(withDuration: 0.3, animations: {
            bubbleView.backgroundColor = UIColor(red: 255/255, green: 225/255, blue: 68/255, alpha: 1)
            containerViewTrailingConstraint.constant = 5
            iconImageViewTrailingConstraint.constant = 5
            bubbleViewEqualWidthConstraint.constant = 0
            self.view.layoutIfNeeded()
        }, completion: { (done:Bool) in
            UIView.animate(withDuration: 0.2, animations: {
                textView.alpha = 1
                doneButton.alpha = 1
            }, completion: { (done:Bool) in
                textView.becomeFirstResponder()
            })
        })
        self.didTapOnButton = false
    }

触发动画的代码。点击按钮后self.didTapOnButton设置为true,之后立即重新加载表格视图,以便执行此代码一次(通知self.didTapOnButton重新设置为false动画完成后)。但是,这个问题似乎不太可能出现在这段代码中,因为当单元格仍在表格视图中时,它可以完美地工作,而不是表格视图的页脚。

1 个答案:

答案 0 :(得分:0)

由于您试图在ThreadDemoCounter中为视图设置动画,但页脚视图在该点尚未成为视图层次结构的一部分,因此动画不会发生。在此函数返回后添加页脚视图,您只看到动画后视图。

通常我不喜欢这种基于时间的“黑客”,但这会通过在页脚视图到位后执行动画来解决您的问题而我无法想到任何其他可靠的方法

c1