2012-07-08 94 views
1

我試圖從一個UIBarButton項目刪除發光,以便我的文本看起來是一個標籤而不是一個按鈕。我已經看過各種帖子討論如何通過界面生成器或通過設置一個布爾變量「showsTouchWhenHighlighted」來做到這一點,但這些選項都不可用。我已經嘗試在.m viewDidLoad中設置showsTouchWhenHighlighted,我在其中更改字體和字體大小,但UIBarButtonItem似乎沒有該屬性。我也只能在以下圖像中的選項在InterfaceBuilder中進行更改。iPhone:按下按鈕時如何從UIBarButtonItem中刪除發光(亮)?

enter image description here

+1

,你可以不要使用標準欄按鈕項目。如果您想將其定製到該級別,則必須創建一個帶有自定義視圖的酒吧按鈕項目,該項目實際上是按照您的需要配置的按鈕(例如,不發光),並添加該按鈕項目而不是標準項目。 – 2012-07-08 16:56:52

回答

2

有一種方法可以做到這一點(一個黑客位,但它的工作原理)。只需將UIButton拖入您的工具欄(而不是UIBarButtonItem)。然後將自動爲您創建一個UIBarButtonItem,作爲您的UIButton的超級視圖。然後,你只需設置這樣的:

的UIBarButtonItem

  • 風格:平原
  • 標題:(空)

的UIButton

  • 類型:自定義
  • 標題:(您的實際標籤這裏標題)
  • 文字顏色:白色
  • 顯示點觸亮點:(選)

這裏是作爲參考使用截圖: enter image description here

注意:請記住,從現在開始,文本上的任何更新都必須在UIButton

+0

當我嘗試點擊/拖動UIButton到「標籤」的位置時,它將其引發到我的NavigationBar上方或完全放在我的TableView上。我做錯了什麼?謝謝! – daveomcd 2012-07-08 18:31:15

+0

從我的屏幕截圖中可以看到,你似乎正在使用'UITableViewController'。如果您需要在屏幕上顯示多個元素,這不是一個好主意。我建議你使用一個'UIViewController'(符合相應的協議)並添加一個'UITableView'和一個'UIToolbar'或者你需要的任何子視圖。 – Alladinian 2012-07-08 19:24:16

0

上試一下:

`

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(140 , 0, 50, 250)]; 
    [label setBackgroundColor:[UIColor clearColor]]; 
    label.text = @"TEXT"; 
    UIView *view = (UIView *) label; 
    [self.barItem setCustomView:view]; 

`

注:self.barItem是一個的UIBarButtonItem從對象庫中添加,並置於兩個柔性空間之間。

另一種方式是不幸的是去除[self.barItem setCustom:view]線和更改標籤(寬度)的參數,使其充滿整個工具欄,並設置對齊到中間,自己在代碼的字體,