2015-04-12 193 views
-1

因此,在这里附加的截图中有3个大“按钮”。当点击一个按钮时,下面有一个小箭头,下面的内容会改变。 我想做那样的事情。swift的自定义按钮

正如你可以在每个按钮上看到有几个不同大小的文本。 我正在考虑使用自定义分段控件。这是要做的吗? 或者我应该使用自定义按钮并处理它们中的每一个的“选定”状态。

如何做一个自定义按钮与不同的文本里面?

enter image description here

+0

WWDC14会话221 - 创建自定义用户界面。 – Abizern

回答

1

你描述的是一个UITabBarUITabBarController或多或少的行为。但是,我不认为这个系统是为了让你自定义外观而设计的。

你所描述的自定义控制也类似于UISegmentedControl,但并不完全,要么。再次,我不认为UISegmentedControl设置为这样的自定义行为。

我可能会创建UIControl的自定义子类,它具有3个状态(或更好的N个状态,每个状态都有文本,可选图像等等,以及所有可能状态的设置数组,以及一个代表当用户更改状态,可以通知)。

那么你或许应该创建一个包含在顶部自定义控制和低于视图承载n个子视图控制器的一个父视图控制器。当用户点击您的控件的某个部分时,您将在不同的子视图控制器中进行动画处理。你可以使用方法 transitionFromViewController:toViewController:duration:options:animations:completion:,这很容易使用。

+0

谢谢,不错。 –

0

我会建议使用UIPageViewController为用户有望向左滑动,写字,当点击一个按钮,你可以模拟这两个内容的[在UIViewController(S)的运动,容易

页面指示符
0

我不认为这是可能采用分段控制,除非你想用图片的文本,因为UISegmentedControl不支持归因字符串。我将使用3 UIButtons作为标题的属性字符串,因此您可以针对不同的行使用不同的字体大小。使用CAShapeLayer可以很容易地绘制底部的三角形。最好将UIButton的子类继承下来,这样你就可以将必要的逻辑用不同的字体构造成标题,然后在你的视图控制器类之外进行绘制。

+0

也很好这个解决方案。 –