我想在中间用一个按钮实现半个UITableView半MapView UIView

ser*_*g90 7 objective-c uibutton uitableview mkmapview ios

好吧,这就是我想在我的应用程序中做的事情:我想在屏幕的上半部分用一张地图和另一半用中间有两个按钮的桌面视图来表示UIView.如果我按下其中一个按钮,地图将全屏显示,如果我按下另一个按钮,则tableView将适合所有屏幕.

有什么建议吗?

Ste*_*ser 7

在一个视图中,控制器(如UINavigationController)创建一个MKMapView,其框架大小为视图的上半部分,并将其添加为视图控制器的子视图.然后我会创建一个UIToolbar来保持你的按钮,并使其顶部的框架与MKMapView的底部对齐.最后创建一个UITableView,它的框架就在其他框架的下方(确保你连接它的代理).

然后将UIBarButtonItem的目标分配给一个方法,该方法使地图全屏显示为所有三个视图的帧的动画,如下所示:

[UIView animateWithDuration:0.24 
                      delay:0.0
                    options:UIViewAnimationCurveEaseOut
                 animations:(void (^)(void)) ^{
                     self.toolbar.frame = CGRectMake(0, MAP_HEIGHT_FULLSCREEN, 320, TOOLBAR_HEIGHT);
                     self.mapView.frame = CGRectMake(0,0,320,MAP_HEIGHT_FULLSCREEN);
                     self.tableView.frame = CGRectMake(0, MAP_HEIGHT_FULLSCREEN+TOOLBAR_HEIGHT, 320, MAP_HEIGHT_FULLSCREEN-MAP_HEIGHT);
                 }
                 completion:^ (BOOL finished){}
 ];
Run Code Online (Sandbox Code Playgroud)