当我尝试将圆角和阴影应用于我UITableView
的动态内容时,我面临一个奇怪的问题,它根据数据(单元格数量)改变高度。这是滚动时生涩效果的屏幕录制。
我的动机是为动态表格视图添加阴影和角半径。
当我添加拐角半径时它工作正常,但是当我尝试添加阴影时它没有显示。所以我在这里找到了一个解决方案,说我们需要设置
self.tableView.clipsToBounds = false
self.tableView.layer.masksToBounds = false
Run Code Online (Sandbox Code Playgroud)
但是,在设置后,我得到了上述生涩效果,并且圆角半径不再可见。
我尝试了其他(建议的)解决方案,比如在运行时添加一个关于 tableview 框架的自定义视图,但这会创建一个静态高度视图,从而禁用与该区域的 superview 的交互。
这是我的代码:
searchResultTblView.layer.cornerRadius = 10
searchResultTblView.layer.maskedCorners = [.layerMinXMaxYCorner , .layerMaxXMaxYCorner]
searchResultTblView.keyboardDismissMode = .onDrag
searchResultTblView.layer.shadowColor = UIColor.gray.cgColor
searchResultTblView.layer.shadowOpacity = 0.6
searchResultTblView.layer.shadowRadius = 5
searchResultTblView.tableFooterView = UIView.init(frame: CGRect.zero)
searchResultTblView.separatorInset = .zero
searchResultTblView.clipsToBounds = false
searchResultTblView.layer.masksToBounds = false
Run Code Online (Sandbox Code Playgroud)
我知道可能有更好的方法来在表格视图上设置阴影和角半径。但是,我目前无法实现它。