我已在标题区域中实现了MKMapView,即使您将表格向下拖动到反弹区域,我也希望将其完全展开到顶部 - 与Foursquare类似,请参阅示例:
我当前的默认标题实现(向下拖动时的灰色反弹区域)
在向下拖动表格时,如何使标题中的地图视图适应顶部的可用标题空间?
我正在使用评论中提到的UIScrollView委托,然后调整地图视图框架的大小。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
CGRect frame = worldmap.frame;
frame.size.height -= scrollView.contentOffset.y;
worldmap.frame = frame;
}
......但是它没有做出正确反应而表现不佳。如何正确设置地图框的新尺寸?
答案 0 :(得分:6)
为表视图实现scrollview委托。由于它是scrollview的子类,因此您可以使用scrollview委托。实现scrollViewDidScroll
委托,每当它向下滚动时,更改标题视图的框架并确保该标记始终位于屏幕的中心。
在.h文件中加入UIScrollViewDelegate
并实施,
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
//set the frame of MKMapView based on scrollView.contentOffset and make sure the pin is at center of the map view
}
答案 1 :(得分:1)
将headerView框架设置得很长,然后将地图置于允许您在地图底部查看感兴趣区域的区域中心。
修改强>
我注意到Foursquare示例中的引脚位于地图的中心。这意味着您可能应该使用UIScrollViewDelegate
来使用didScroll
方法并在滚动期间动态更改地图的框架。您还应该在滚动时将地图置于引脚区域中心。
答案 2 :(得分:0)
老问题,但我已在项目中实现了这一点。
TableView标题是一个MapView,作为一个额外的奖励,地图也可以移动和缩放。
答案 3 :(得分:0)
我将标题视图的内容放在另一个视图中,我限制在标题视图的每一侧。然后使用IBOutlet到顶部约束我只是将它设置为contentOffset。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (_tableView.contentOffset.y < 0) {
_mapTopConstraint.constant = _tableView.contentOffset.y;
}
}