Ios Mapkit自定义详图索引幻灯片视图(从底部)

Ios Mapkit自定义详图索引幻灯片视图(从底部),ios,objective-c,mapkit,Ios,Objective C,Mapkit,我有一张地图,上面有多个注释。当我点击其中一个时,我想从底部滑动一个小的UIView,其中包含一些关于该引脚的信息。如果我单击一个名为“更多”的按钮,我希望视图向上展开,并包含更多信息 我不知道该怎么做才对。我的想法是为自定义标注定义一个新的xib和视图控制器。但我只想显示该视图的一小部分,所以我应该将其框架从开始设置为固定的小值,还是使用autolayout将其缩小为其内容?我怎样才能把它从底部滑上去呢?我想我需要以模态或childviewcontroller的形式显示它,并使用一些动画 当用

我有一张地图,上面有多个注释。当我点击其中一个时,我想从底部滑动一个小的UIView,其中包含一些关于该引脚的信息。如果我单击一个名为“更多”的按钮,我希望视图向上展开,并包含更多信息

我不知道该怎么做才对。我的想法是为自定义标注定义一个新的xib和视图控制器。但我只想显示该视图的一小部分,所以我应该将其框架从开始设置为固定的小值,还是使用autolayout将其缩小为其内容?我怎样才能把它从底部滑上去呢?我想我需要以模态或childviewcontroller的形式显示它,并使用一些动画

当用户单击“更多”时,我将使用另一个带有xib文件的DetailViewController,该文件也将以MODAL方式显示或同时显示为childviewcontroller。有没有什么例子可以说明如何做到这一点?或者有没有更好的方法

目前,每个注释的自定义标注视图都是相同的。但我会有三个不同的DetailViewController,具体取决于单击的注释。
我的基本想法是将这些东西分开,这样我的MapViewController就不会变得太大。

我不会在幻灯片视图中使用视图控制器。只需创建一个UIView,其框架正好位于主视图框架之外,并将其作为子视图。像这样:

UIView *v = [[UIView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height, self.view.frame.size.width, 200)];
[self.view addSubview:v];
self.infoView = v;
您可以在viewDidLoad中或在视图初始设置中的任何位置执行此操作。它将不可见,因为它刚刚离开屏幕底部。然后,当用户点击callout按钮时,将infoView动画设置到如下位置:

-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
    // Populate infoView with whatever info you want to show about the annotation
    //
    //  ...
    //
    // Then animate the view into position
    [UIView beginAnimations:@"infoView" context:nil];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:0.5];
    [UIView setAnimationDelegate:self];
    self.infoView.center = CGPointMake(0, self.view.frame.size.height - 200);
    [UIView commitAnimations];
}

我喜欢将详图索引视图放置在主视图框架之外的idear。但是,我需要一个详图索引视图和三种不同类型的详细视图(当用户决定在详图索引中单击“更多”时)。我认为将所有内容都放在同一个视图控制器中会非常困难。是否可以使用自动布局或更好地更改框架来进行滑动?