【问题标题】:how to make horizontal scrolling menu in iOS如何在 iOS 中制作水平滚动菜单
【发布时间】:2013-08-05 22:42:03
【问题描述】:

我想做一个水平滚动的菜单。

菜单共包含 16 个类别。所以我打算在第一部分取 8 个,在另一部分休息 8 个。

谁能告诉我需要做什么?

我相信我需要在下面使用。

UIScrollView
Add buttons in this scrollview

就这样?


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

菜单样例可见http://www.shoutem.com/

【问题讨论】:

    标签: ios objective-c menu horizontalscrollview


    【解决方案1】:

    如果您所做的只是向水平滚动视图添加按钮,您可以执行以下操作...

    - (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 个按钮。

    【讨论】:

    • 再加上一些 RND,我设法得到了我想要的东西。感谢您的帮助。
    • 嗨,埃里克,我也在做同样的事情,水平滚动效果很好,但按钮没有显示..!
    • 埃里克,一个非常有用的例子。我有个问题。也许您可以解释为什么当我将滚动条放到框架底部时滚动变得更加困难? stackoverflow.com/q/43527248/2348597
    【解决方案2】:

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

    但是,如果您的目标是 iOS 6 及更高版本,使用 UICollectionView,其中您的项目/单元格是按钮,那么您可以免费获得水平滚动的“菜单栏”。有很多关于这方面的帖子,但主要思想是使用流布局,其中项目大小的高度使得只有一行项目(只需使项目高度与集合视图的高度相同) .

    编辑:

    我应该说,这可能看起来有点矫枉过正(也许确实如此),但如果将来需求发生变化,您最终会得到一个更加灵活的组件。它也不会产生太多额外的代码,并抽象出繁琐的布局细节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-13
      • 2015-12-29
      • 1970-01-01
      • 2015-01-06
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多