我如何复制;添加任务“;本机iOS提醒应用的行布局行为?
如果该行位于可见区域下方,则提醒应用程序中的“添加任务”行将作为覆盖粘贴到UITableView的底部,如果该行位于可见区域内,则固定到最后一行 提醒应用程序的屏幕截图:我如何复制;添加任务“;本机iOS提醒应用的行布局行为?,ios,swift,uitableview,layout,uiscrollview,Ios,Swift,Uitableview,Layout,Uiscrollview,如果该行位于可见区域下方,则提醒应用程序中的“添加任务”行将作为覆盖粘贴到UITableView的底部,如果该行位于可见区域内,则固定到最后一行 提醒应用程序的屏幕截图: 我尝试了几种方法,但无法使其按我所希望的方式工作: 使用父UIViewController,该控制器将新添加的视图约束到底部,并将优先级较低的lessThenEqual约束和equal约束约束约束到UITableView的空页脚视图。这工作得很好,但没有考虑到一个小的UITableView内容插入集(发生重叠),新视图
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)
}
覆盖函数scrollViewDidScroll(scrollView:UIScrollView){
footerView.transform=CGAffineTransform.identity
设delta=tableView.bounds.maxY-footerView.frame.maxY
如果δ<0{
footerView.transform=CGAffineTransform(translationX:0,y:delta)
}
tableView.bringSubviewToFront(footerView)
}
您可能可以使用表视图来完成这项工作,但我很确定使用UICollectionView会更干净—查看自定义布局或集合视图—好的,谢谢。我以前从未使用过UICollectionView,但我认为UICollectionViewFlowLayout的sectionFootersPinToVisibleBounds正是我所需要的。