如何设计我的片段,使所选片段看起来像上图中的“全部”。我可以想到在选择时使用不同的图像,但如果我这样做,那么“其他”中的曲线的某些部分将不可见。对于像这样设计 UISegmentControl
有什么建议吗?
最佳答案
我有两个建议:
找到避免这种情况的替代方法。 许多应用程序试图通过设计自定义组件和 UI 来增加乐趣,但实际上它并没有给应用程序带来太多好处。在最坏的情况下,您可能会因为使用不按预期方式工作的非标准组件而让人们感到沮丧,或者在他们尝试使用您的应用程序时增加认知负担。
100% 使用自定义子类。 不要仅仅满足于设置静态背景图像,而要投资创建一个组件,该组件不仅在选定状态下看起来像这样,而且还可以在人们更改选定项目时提供动画。
这将是一项相当大量的工作,但会是这样的:
- 子类化
UISegmentedController
——它提供了您正在寻找的良好功能的基础; - 添加新的
CAShapeLayer
作为控件背景层 - 找出一条可以更新所有状态的动态贝塞尔曲线(可能最终会有每个段的控制点),您可能可以手动完成此操作,但我必须使用 PaintCode 之类的工具来生成贝塞尔曲线代码,Illustrator制作初始曲线
- 添加线段变化事件变化的监听,根据需要重新计算曲线控制点
这样做的好处是,CAShapeLayer
上的路径属性是可动画的,因此当线段发生变化且曲线更新时,动画可能是最简单的部分!
关于ios - 设计UISegmentControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41517803/