2014-11-04 44 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