2014-11-04 45 views
1

我想制作一个箭头形状。我知道这将通过CGRect方法完成,但您能否给出一个在SWIFT中如何完成的完整示例?如何在Swift中更改UIButton的形状?

+0

你的意思是在UIView中画一个三角形,还是你想在里面放一些文字的自定义形状? – JMFR 2014-11-04 16:14:30

+0

里面有文字的自定义形状。 我认为这将是一个自定义的UIButton类,我可以重用。 – TPCO 2014-11-04 16:17:43

+0

最简单的方法是按照你的建议使用UIButton。将字体设置在中间位置,将UIButton.currentImage设置为三角形的图像。 (或者你可以采用硬核方式......创建UIView的子类,在CoreGraphics中绘制一个三角形,然后使用drawInRect在三角形内部设置文本。)CG和Text的示例[here](https:// github。 com/regnerjr/BNRSolutions/blob/master/Hypnosister/Hypnosister3/HypnoView.swift) – JMFR 2014-11-04 16:33:22

回答

3

这可以通过首先继承UIButton并在其中重写drawRect以编程方式通过贝塞尔路径形成箭头的形状。然后,简单地将按钮的标题设置为任何你想要的文本,并将其相应地放置在你绘制的形状中。

这样做的好处是,您可以轻松更改箭头的颜色,比例和尺寸,因为您可以控制对象的实际绘制方式。

绘制复杂贝塞尔路径的好工具是paintCode。我正在使用试用版,现在可以非常轻松地制作这种形状。

+0

不错的一个。我在paintCode中创建了箭头形状,并将其应用于自定义的UILabel类,并且它可以工作,唯一的问题是它没有显示我在Interface Builder中设置为标签的文本。 – TPCO 2014-11-04 18:32:53

+0

很难说清楚为什么在没有看到代码的情况下发生这种情况。检查以确保一切正确连接,因为这可能是一个问题。但是,您现在可以更简单地通过编程方式简单地设置labeltext。这可以通过labelname.text =“text here”来完成 – Glynbeard 2014-11-04 19:01:01