我自己正在学习Objective C,我正在尝试做这样的事情,但我想知道什么是最好和最正确的方法。我正在使用情节提要,但这没关系,因为这是为了我的学习,可以使用单独的 xib 来完成。只是解释一下,顶部的一堆按钮(无需滚动到侧面),当你触摸它们时,它会加载一个特定的视图,就好像它是一个气球一样。不像标签栏。
任何想法?
这里只是一个 PS,我不是要求准备好代码,只是关于如何实现它的想法。
谢谢
如下图:

我自己正在学习Objective C,我正在尝试做这样的事情,但我想知道什么是最好和最正确的方法。我正在使用情节提要,但这没关系,因为这是为了我的学习,可以使用单独的 xib 来完成。只是解释一下,顶部的一堆按钮(无需滚动到侧面),当你触摸它们时,它会加载一个特定的视图,就好像它是一个气球一样。不像标签栏。
任何想法?
这里只是一个 PS,我不是要求准备好代码,只是关于如何实现它的想法。
谢谢
如下图:

您可以通过多种方式实现这一点,这里有一些建议:
使用UIViewController 包含,其中按钮栏是 的子视图,ContainerViewController每个按钮显示一个ContentViewController(带有相应箭头的白色视图)。
只需让按钮栏中的每个按钮显示一个UIView子类(带箭头的白色区域)。
让按钮栏中的每个按钮触发 UIPopoverController 的显示(白色区域,优点是箭头将被包含并免费定位)。
如果您确实需要横向滚动按钮栏中的按钮,您可以使用UICollectionView.
希望这可以帮助。
我会这样做,使用自定义Container Controllers。
您可以创建一个子视图控制器列表,每次单击一个圆圈时,您可以使用以下方法更改控制器:
- (void) displayContentController: (UIViewController*) content;
{
   [self addChildViewController:content];                 
   content.view.frame = [self frameForContentController];
   [self.view addSubview:self.currentClientView];
   [content didMoveToParentViewController:self];         
}
- (void) hideContentController: (UIViewController*) content
{
   [content willMoveToParentViewController:nil]; 
   [content.view removeFromSuperview];            
   [content removeFromParentViewController];      
}
使用向上箭头创建一个视图,并根据恢复单击的按钮的位置更改它的 center 属性。
-(void)didTouchButton:(UIButton*)target{
       [UIView animateWithDuration:0.5f animations:^ {
           CGRect frame = _upArrow.frame;
           frame.origin.x = target.origin.x;
           _upArrow.frame = frame;
       } completion:^(BOOL finished) {
          // here you can added your view controller
       }
 }