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