我自己正在学习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
}
}