【发布时间】:2017-05-29 20:23:54
【问题描述】:
从对象库中拖放分段控制器非常简单,但这并不总是必需的。我需要实现自定义下划线类型的分段控制器,但我发现它太难了。我在网上找到的代码就在我头上。有人可以建议轻松实现下划线类型的自定义分段控制器吗?
【问题讨论】:
-
喜欢的东西...?
标签: ios swift uisegmentedcontrol
从对象库中拖放分段控制器非常简单,但这并不总是必需的。我需要实现自定义下划线类型的分段控制器,但我发现它太难了。我在网上找到的代码就在我头上。有人可以建议轻松实现下划线类型的自定义分段控制器吗?
【问题讨论】:
标签: ios swift uisegmentedcontrol
外行,最简单的方法可能是,您在视图上放置两个标签。并在每个标签下放置一个进度条。默认情况下隐藏进度条。为这些进度条和标签创建@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..
}
}
【讨论】:
基本上你所做的是,
您看到的所有自定义分段控件都是这样完成的,添加了动画和自定义drawRect。而且代码更加模块化和面向对象编程,因此任何人都可以通过非常简单的公共 api 轻松使用它。
希望这个解释可以帮助您构建自己的自定义控件。 快乐编码
【讨论】:
您可以使用collection view 创建类似的内容。
参考:https://stackoverflow.com/a/40552321/5716829
在对UICollectionViewDelegateFlowLayout 进行细微更改后,您可以创建自己的自定义segmented control。
如果您在遵循此方法时需要任何帮助,请告诉我。
【讨论】: