我有一个滚动视图,其中有一个MapView和UICollectionView。 mapview放置在滚动视图的停止位置,collectionview锚定在mapview的下面。
现在,当我滚动地图视图时,其顶部仍保持“粘性”,而集合视图仅在其下方滚动。 id希望地图视图实际向上滚动而不粘在视图顶部。
class MapViewController: UIViewController {
let mapView: MKMapView = {
let map = MKMapView()
map.mapType = .standard
map.isZoomEnabled = true
map.isScrollEnabled = true
return map
}()
let scrollView = UIScrollView()
let listViewController = ListViewController(collectionViewLayout: UICollectionViewFlowLayout())
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(scrollView)
scrollView.translatesAutoresizingMaskIntoConstraints = false
scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
scrollView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
scrollView.widthAnchor.constraint(equalTo: view.widthAnchor).isActive = true
scrollView.heightAnchor.constraint(equalTo: view.heightAnchor).isActive = true
scrollView.addSubview(mapView)
mapView.anchor(top: scrollView.topAnchor, left: view.leftAnchor, bottom: nil, right: view.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 200)
scrollView.addSubview(listViewController.view)
listViewController.view.anchor(top: mapView.bottomAnchor, left: view.leftAnchor, bottom: view.safeAreaLayoutGuide.bottomAnchor, right: view.rightAnchor, paddingTop: 0, paddingLeft: 0, paddingBottom: 0, paddingRight: 0, width: 0, height: 0)
}
}
我希望mapview保持可滚动状态,所以我不想禁用其滚动。我还需要它下面的collectionview是可滚动的,因为我在另一个必须在其中滚动的视图中的其他地方使用了ListView,并且我不想在该级别禁用它。
我想到也许不用将这两个元素分开,我可以使用标题单元格并在其中放置一个视图?但是然后我需要将collecitonview放置在collectionview内,这似乎不是一个好主意。