Ios 定制分段控制器的替代方法

Ios 定制分段控制器的替代方法,ios,swift,uisegmentedcontrol,Ios,Swift,Uisegmentedcontrol,从对象库拖放分段控制器非常简单,但并不总是需要这样的控制器。我需要实现自定义下划线类型分段控制器,但我发现它太难了。我在网上找到的密码简直让我摸不着头脑。有人能建议轻松实现下划线类型的自定义分段控制器吗?基本上你要做的是 创建UIView子类后,可以通过xib手动设计它,以便重用UIView 通过使用两个按钮,使其看起来像一个分段控件 子类UIView并编写代码,用添加的动画连接两个按钮,其中一个按钮将被取消选择(更改颜色),而另一个按钮被选择,反之亦然 您看到的所有自定义分段控件都是这样完

从对象库拖放分段控制器非常简单,但并不总是需要这样的控制器。我需要实现自定义下划线类型分段控制器,但我发现它太难了。我在网上找到的密码简直让我摸不着头脑。有人能建议轻松实现下划线类型的自定义分段控制器吗?

基本上你要做的是

  • 创建UIView子类后,可以通过xib手动设计它,以便重用UIView
  • 通过使用两个按钮,使其看起来像一个分段控件
  • 子类UIView并编写代码,用添加的动画连接两个按钮,其中一个按钮将被取消选择(更改颜色),而另一个按钮被选择,反之亦然
您看到的所有自定义分段控件都是这样完成的,添加了动画和自定义
drawRect
。代码更加模块化和面向对象,因此任何人都可以通过非常简单的公共api轻松地使用它

希望此解释能帮助您构建自己的自定义控件。
快乐编码

您可以使用
集合视图
创建类似的内容

参考:

UICollectionViewDelegateFlowLayout
中进行微小更改后,您可以创建自己的自定义
分段控件


如果您需要此方法的帮助,请告诉我。

外行,最简单的方法是,在视图上放置两个标签。在每个标签下放置一个进度条。默认情况下隐藏进度条。为这些进度条和标签创建@IBOutlets。仔细分配约束。现在从对象库中拖动分段控制器,并将其放置在这些控制器上。使色调清晰/透明。现在为分段控制器创建插座

现在,在选择分段控制器时,您可以做的是将该分段下方的标签变为粗体,同时可以取消隐藏选定分段的隐藏进度条。使用原始字体替换取消绑定未选中的标签

希望您能理解提供和寻找细分市场的例子

让我为其编写代码,如果遇到任何问题,请发表评论:

@IBAction func selection(_ sender: Any) {//outlet to UISegmentedControler
        let sel = segmt.selectedSegmentIndex
        if sel == 0 {

            Providing.font = selectedFont //selected font is bold font 
            Seeking.font = fonts //original font for seeking
            p.isHidden = false
            s.isHidden = true


        }
        else if sel == 1 {

            Seeking.font = selectedFont
            Providing.font = fontp //original font for providing
            s.isHidden = false
            p.isHidden = true



        }
        else{
            //code..
        }

    }

像什么。。。?