【问题标题】:How do i get the scrolling bar with buttons?我如何获得带有按钮的滚动条?
【发布时间】:2016-03-31 01:16:24
【问题描述】:

首先我有一个新闻应用程序,它有不同的类别,如商业、国家、州新闻等,所以我需要一个带有按钮的滚动条,如下图所示。

我不知道它叫什么标签栏、带按钮的栏或者还有什么故事板。

我已经搜索了一个谷歌但找不到它,因为我不知道它叫什么

到目前为止,我已经尝试创建一个垂直滚动视图并向其添加按钮,但如果不符合我的要求,我想要更好的东西.. 如果你找到任何 GitHub 项目,那就太好了。

我什至尝试过分段控制,但它不包含更多类别,它变得越来越小,所以我想要顶部图像中显示的东西。

更新

点击任何按钮我想用类别的内容刷新表格视图...

标签栏不起作用

提前感谢您的帮助

【问题讨论】:

标签: ios swift storyboard


【解决方案1】:

您链接的图像几乎可以肯定是自定义控件。

它看起来有点像 UITabBarController 中的 UITabBar,但它不是标签栏控制器。

如果我这样做,我可能会使用视图控制器内置的父/子视图控制器支持并创建一个自定义父视图控制器来实现此功能。

控制本身并不难。我会创建一个自定义控件,其中包含多个标签,这些标签的颜色会根据所选项目发生变化,以及一个彩色条,我将动画化以滑动到当前选择。

父视图控制器将拥有选项卡控件。当所选选项卡已更改时,选项卡控件将在父视图控制器上启动父视图控制器上的动作,并且父视图控制器将在新的子视图控制器中交换。

我还用搜索字符串“custom UITabBar”做了一些搜索,发现了这个链接:

Really cool way to create custom UITabBar for iPhone app?

听起来iDevReceipes 可能有现成的解决方案。

【讨论】:

  • 在标签栏点你是对的,但标签栏会更改视图控制器或添加子视图,但我只需要用新内容刷新表格视图。感谢您的帮助
  • 哦!那就更简单了。只需构建一个 UIControl 的自定义子类,它就像一个分段控件并在 valueChanged 上发送一条 IBAction 消息。没那么难。
【解决方案2】:

根据您的更新,我认为您只能使用HMSegmentedControl 并相应地更改表格视图上的内容。 HMSegmentedControl 有一个 indexChangeBlock 属性,您可以在其中传递一个在选择另一个选项卡时将调用的块。

【讨论】:

  • 标签栏控制器无法工作我不想更改视图控制器
  • 哦,太好了,但客观上我无法理解如何使用它..感谢您的帮助
【解决方案3】:

Adrian B.. 的评论中已经给出了您的答案。

我会向你解释你必须如何去做。首先它被称为 Tab Swipe 导航

利用碳套件

https://github.com/melieskubrick/CarbonKitSwift

所以首先将元素添加到您的视图中。这就是您使用 Carbon Kit

添加的方式
override func viewDidLoad() {
    super.viewDidLoad()

    self.title = "CarbonKit"
    items = [UIImage(named: "home")!, UIImage(named: "hourglass")!, UIImage(named: "premium_badge")!, "Categories", "Top Free", "Top New Free", "Top Paid", "Top New Paid"]
    carbonTabSwipeNavigation = CarbonTabSwipeNavigation(items: items as [AnyObject], delegate: self)
    carbonTabSwipeNavigation.insertIntoRootViewController(self)
    self.style()

}

您想刷新您的新闻,因此使用 Carbon Kit 的委托方法 CarbonTabSwipeNavigationDelegate 您可以刷新您的表格视图。

 func carbonTabSwipeNavigation(carbonTabSwipeNavigation: CarbonTabSwipeNavigation, viewControllerAtIndex index: UInt) -> UIViewController {

        switch index {
        case 0:
            //Do your table view refresh here Business category 
        case 1:
           //Do your table view  refresh here other category 

        default:
            //Do your table view  refresh here all category  which will be default

        }

    }

信用

【讨论】:

  • 感谢 O-mkar 很好的解释。但是我在情节提要中做什么?
  • 你想知道的都在这个项目Link
  • 如果您觉得我的回答有用,别忘了点赞并接受答案:)
  • 碳套件很棒。但是如何将特定索引设置为初始视图控制器?(比如索引:2)任何想法@O-mkar
  • 你试过这个 self.storyboard!.instantiateViewControllerWithIdentifier("ViewControllerOne") 吗! ViewControllerOne
猜你喜欢
  • 2010-12-24
  • 2014-08-09
  • 2016-11-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多