如果提醒应用程序中的“添加任务”行位于可见区域的下方,则该行将作为叠加层粘贴在UITableView的底部;如果该行位于可见区域,则固定至最后一行。
提醒应用的屏幕截图:
我尝试了几种方法,但无法按照我的期望来工作:
使用UITableView footerView并在发生滚动时变换其框架。以下代码是我的第一次尝试,但是该框架在footerView.transform = CGAffineTransform.identity
之后没有立即更新,因此该框架不可用。缓存初始帧会导致意外的偏移和其他视觉故障。
override func scrollViewDidScroll(_ scrollView: UIScrollView) {
footerView.transform = CGAffineTransform.identity
let delta = tableView.bounds.maxY - footerView.frame.maxY
if delta < 0 {
footerView.transform = CGAffineTransform(translationX: 0, y: delta)
}
tableView.bringSubviewToFront(footerView)
}