ios – 如何在不违反AutoLayout约束的情况下隐藏UITableViewCells

我目前正在开发一个学习iOS编程和 Swift的应用程序.我有一个包含两个主要子视图的视图,一个MKMapView和一个UITableView.当在MapView中选择某个注释时,我希望隐藏TableView中的某些单元格.如果取消选择注释,则应重新出现单元格.目前我通过将要隐藏的单元格的高度设置为0并调用tableView.beginUpdates()tableView.endUpdates()来实现此目的,但这会导致我的自定义单元格中的各种AutoLayout约束中断.我还尝试在将高度设置为0之前将单元格上的隐藏属性设置为true,但AutoLayout约束仍然被破坏.

这样做的正确方法是什么?

提前致谢.

解决方法

我的2美分:只是尝试将其中一个冲突约束的优先级降低到较低的值,如UILayoutPriorityDefaultHigh(如果在Interface Builder中使用750)或甚至更低,则取决于您的单元格的组成方式. 应该足以给自动布局系统提供关于可以安全地破坏哪个约束的提示.您可能希望打破定义距下边距的距离的约束.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...