另一种制作自定义分段控制器的方法

时间:2017-05-29 11:49:32

标签: ios swift uisegmentedcontrol

从对象库中拖放分段控制器非常简单,但并不总是要求。我需要实现自定义下划线类型分段控制器,但我发现它很难。我在网上找到的代码就在我头顶。有人可以建议轻松实现下划线类型的自定义分段控制器吗?

3 个答案:

答案 0 :(得分:0)

基本上你做的是,

  • 您创建了一个UIView子类,您可以通过xib手动设计它,以便您可以重复使用uiview。
  • 通过两个按钮
  • 使其看起来像分段控件
  • 子类UIView并编写用于连接添加动画的两个按钮的代码,其中One将被取消选择(更改颜色),当选择其他按钮时,反之亦然。

您看到的所有自定义分段控件都是这样完成的,添加了动画和自定义drawRect。并且代码更加模块化和OOP,因此任何人都可以使用非常简单和简单的公共API轻松使用它。

希望这个解释可以帮助您构建自己的自定义控件。 快乐的编码

答案 1 :(得分:0)

您可以使用__next__创建类似的内容。

请参阅:https://stackoverflow.com/a/40552321/5716829

next进行细微更改后,您可以创建自己的自定义collection view

如果您在此方法后需要任何帮助,请与我们联系。

答案 2 :(得分:0)

Layman和最简单的方法可能是,在视图上放置两个标签。并在每个标签下放置一个进度条。默认情况下隐藏进度条。为这些进度条和标签创建@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..
        }

    }