[iOS] 在UIToolBar中增加UILabel等控制項(xib/storyboard圖形介面方式)

來源:互聯網
上載者:User

作者:zyl910

  在iOS開發時,有時候需要在UIToolBar中增加UILabel等控制項。見過很多資料是以代碼方式完成此功能,不易維護。於是我進行了一番摸索,找到了xib/storyboard圖形介面下的處理辦法。

一、代碼方式

  代碼方式是很多資料上提到的,關鍵是利用UIBarButtonItem的initWithCustomView方法來綁定UILabel控制項。代碼如下——

UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(40.0f, 20.0f, 45.0f, 10.0f)];  myLabel.font=[UIFont systemFontOfSize:10];  myLabel.backgroundColor = [UIColor whiteColor];  myLabel.textAlignment=UITextAlignmentCenter;  myLabel.text  = @"aa";UIBarButtonItem *myButtonItem = [[UIBarButtonItem alloc]initWithCustomView:myLabel];  [buttons addObject: myButtonItem]; //添加文本

 

出自——
http://blog.csdn.net/light_jewel/article/details/7768045
UIToolBar 上面添加任意控制項

 

二、xib/storyboard圖形介面方式

  在xib/storyboard圖形介面設計時,不能UILabel放置到UIToolBar中。若強行將UILabel拖曳到UIToolBar,會使UILabel放置在上層容器中,而不是UIToolBar中。
  代碼方式不是可以用initWithCustomView嗎?按道理圖形介面下也能實現的,為什麼就不行呢?
  我仔細檢查了UIToolBar、UIBarButtonItem的屬性面板,貌似沒辦法插入UILabel等控制項。

  山窮水盡疑無路,柳暗花明又一村。我靈機一動,將UIView拖曳到UIToolBar,發現出現了插入符。一鬆手,發現UIToolBar中自動增加了一個UIBarButtonItem,其中便是剛才插入的UIView。哈哈,看看這就是initWithCustomView對應的圖形介面方法。
  隨後在那個UIView中放置UILabel,果然成功——

  運行後發現存在一個問題,UIView的背景色是白色的,與UIToolBar的藍色漸層背景不協調。該怎麼辦呢?
  反覆嘗試修改UIBarButtonItem、UIView、UILabel的Alpha、Opaque等屬性,但總是無法解決背景不協調問題。
  後來在偶然的嘗試中,發現神奇的解決辦法——就是將UIView的Background設為某種顏色(如藍色),然後再設回“Default”,UIView的背景便會消失。運行測試通過——

  估計在放置UIView控制項時,雖然Background表面上是Default,但實際上它用的是White。這時通過重新設定屬性,才能使Background變回真正的Default。

  總結一下操作步驟——
1. 將UIView拖曳到UIToolBar(UIToolBar中自動增加了一個UIBarButtonItem,其中便是剛才插入的UIView);
2. 將UILabel(或其他控制項)拖曳到剛才的UIView中;
3. 將剛才的UIView的Background設為某種顏色(如藍色);
4. 將剛才的UIView的Background設為Default。

  4步輕鬆搞定。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.