【发布时间】:2012-04-05 17:13:30
【问题描述】:
嗯,这就是我想在我的应用程序中做的事情:我想实现一个 UIView,在屏幕的上半部分有一个地图,在另一半有一个表格视图,中间有两个按钮。如果我按下其中一个按钮,地图将全屏显示,如果我按下另一个按钮,tableView 将适合所有屏幕。
有什么建议吗?
【问题讨论】:
标签: objective-c ios uitableview uibutton mkmapview
嗯,这就是我想在我的应用程序中做的事情:我想实现一个 UIView,在屏幕的上半部分有一个地图,在另一半有一个表格视图,中间有两个按钮。如果我按下其中一个按钮,地图将全屏显示,如果我按下另一个按钮,tableView 将适合所有屏幕。
有什么建议吗?
【问题讨论】:
标签: objective-c ios uitableview uibutton mkmapview
在像 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){}
];
【讨论】:
按照您的计划创建两个视图,单击一个按钮,更改一个视图的框架以适应全屏,如果单击另一个按钮,对另一个视图执行相同的操作。
【讨论】: