您好,感谢您查看此问题,
我正在尝试模拟Lyft应用程序的功能。
在Lyft应用程序中,当用户在地图上平移时,底部栏与顶部的UINavigationBar一样消失。我试图在我自己的应用程序中重新创建此功能
在iOS 8上,UINavigationController上有一个属性,可让您在滚动时隐藏顶部栏。这很好,但是可以在mapview平底锅上实现相同的功能吗?
另外,在我的应用程序中,我有一个UITabBar。有谁知道如何隐藏它?
答案 0 :(得分:3)
将平移手势添加到mapview并设置委托。
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
pan.delegate = self;
[self.mapView addGestureRecognizer:pan];
实施手势委托并返回YES。
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
在手势选择器
中-(void)pan:(UIPanGestureRecognizer*)ges
{
[self.navigationController setNavigationBarHidden:1 animated:1];
[self.tabBarController.tabBar setHidden:YES];
}
答案 1 :(得分:1)
MKMapView的这些委托方法看起来也非常有用!这很好,因为你很可能已经实现了MKMapView委托!
- (void)mapView:(MKMapView *)mapView regionWillChangeAnimated:(BOOL)animated
- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated
然后你可以隐藏
[self.navigationController setNavigationBarHidden:YES animated:YES];
[self.tabBarController.tabBar setHidden:YES];
并取消隐藏
[self.navigationController setNavigationBarHidden:NO animated:YES];
[self.tabBarController.tabBar setHidden:NO];