如何在iOS中制作水平滚动菜单

我想制作一个横向滚动的菜单。

该菜单共包含16个类别。 所以我打算先拿8分,再拿8分。

有人能让我知道需要做什么吗?

我相信我需要使用下面。

UIScrollView Add buttons in this scrollview 

而已?


我想要的是在第一屏8个button,其中第一个屏幕将有两行,每行4个button设置。

菜单示例可以在http://www.shoutem.com/看到

如果你正在做的是添加button水平滚动视图,你会做一些事情如下…

 - (void)createScrollMenu { UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 100)]; int x = 0; for (int i = 0; i < 8; i++) { UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(x, 0, 100, 100)]; [button setTitle:[NSString stringWithFormat:@"Button %d", i] forState:UIControlStateNormal]; [scrollView addSubview:button]; x += button.frame.size.width; } scrollView.contentSize = CGSizeMake(x, scrollView.frame.size.height); scrollView.backgroundColor = [UIColor redColor]; [self.view addSubview:scrollView]; } 

这将创build一个高度为100,宽度与其父级一样大的滚动视图,并向其添加8个button。

您可以使用UIScrollView和UIButton对象来实现您的目标,这将涉及根据您定位的iOS版本设置每个button的框架/布局属性。 (正如Eric的回答)

但是,如果您的目标iOS 6及以上版本,使用UICollectionView,其中您的项目/单元格是button,那么您可以免费获得水平滚动“菜单栏”。 这里有很多SOpost,但主要想法是使用stream程布局,其中项目大小有一个高度,这样只有一行项目(只是使项目高度与收集视图的高度相同) 。

编辑:

我应该说,这看起来可能是过度的(也许是这样),但是在未来的案例需求变化中,最终会有一个更加灵活的组件。 它也不会产生太多额外的代码,并将繁琐的布局细节抽象出来。