2012-02-27 121 views
0

可能重複:
CALayer: add a border only at one side如何繪製一個UILabel邊界

我需要以編程方式繪製的UILabel的左邊框。 使用此代碼將繪製標籤周圍的所有邊框(頂部,左側,底部,右側)。

myLabel.layer.borderColor = [UIColor whiteColor].CGColor; 
myLabel.layer.borderWidth = 1.5f; 

是否有借鑑使用QuartzCore僅左邊框的機會或者我需要添加一個子視圖(如小重量和背景一個UIView)我的UILabel?

+2

http://stackoverflow.com/questions/7022656/calayer-add-a-border-only-at-one-side – matzino 2012-02-27 10:25:09

回答

2

這很簡單。我已經做了一些類似的編程,在視圖上添加「透明」形狀(通過按鈕顯示背景色)。 15分鐘的方法是:

  1. 創建適當的大小(CGRectMake(0,0,1.5f,myLabel.frame.size.height))和彩色
  2. 的一個UILabel標籤添加到您的視圖(這將剪輯UIlabel與cornerRadius等)
  3. 設置autoresizingMaskUIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleHeight讓左邊框用myLabel調整並粘到左邊

我認爲就是這樣。應該用很少的戲劇工作。如果你正在繪製數百或數千個,它可能會很慢,但對於一些標籤,沒有問題。

享受,

達明

+0

謝謝! 這是一個有趣的解決方案,但在鏈接問題之後,我認爲創建一個CALayer會更容易,然後將其添加爲子圖層。如果您需要用類別(例如UILabel + Border)「擴展」UILabel類,則也更容易。再次感謝您的回覆! – 2012-02-27 22:48:45

+1

我同意,抵消幀的鏈接解決方案更加巧妙,並且可以更好地擴展。這是我喜歡試圖回答問題的一件事 - 我通常也學習一些東西。 – 2012-02-28 03:23:51