我想制作一个水平滚动的菜单。
该菜单共包含16个类别。所以我计划在第一部分拿8分,在另一部分拿8分。
有人可以让我了解需要做些什么吗?
我相信我需要在下面使用。
UIScrollView
Add buttons in this scrollview
就是这样吗?
我想要的是第一个屏幕8个按钮,其中第一个屏幕将有两行,每行设置4个按钮。
看到菜单示例答案 0 :(得分:23)
如果您所做的只是向水平滚动视图添加按钮,您将执行以下操作...
- (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];
}
这将创建一个高度为100,宽度与其父级一样大的滚动视图,并为其添加8个按钮。
答案 1 :(得分:1)
您可以使用UIScrollView和UIButton对象来实现目标,它将涉及根据您要定位的iOS版本设置每个按钮的框架/布局属性。 (如Eric的回答)。
但是,如果您的目标是iOS 6及更高版本,使用UICollectionView,其中您的项目/单元格是按钮,那么您可以免费获得水平滚动“菜单栏”。这里有很多SO帖子,但主要的想法是使用一个流程布局,其中项目大小的高度只有一行项目(只需使项目高度与集合视图的高度相同)
编辑:
我应该说,这可能看起来有点过分(也许是这样),但如果将来需求发生变化,您最终会得到更灵活的组件。它也不会产生太多额外的代码并抽象出繁琐的布局细节。