作者: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步轻松搞定。

[iOS] 在UIToolBar中增加UILabel等控件(xib/storyboard图形界面方式)相关推荐

  1. 在主窗口中增加绘图类控件时(以QPainter为例)时不显示内容的问题(不应该加addStretch)

    问题引出 假如我要实现以下GUI,包含一个主窗口,主窗口内又包含1个绘图类控件(QPainter中的QdrawText)和1个 单行文本框控件(QLineEdit). 期望效果图 开始实现的代码为: ...

  2. 在MFC对话框中快速集成三维控件

    在MFC的对话框中可以方便的集成AnyCAD三维控件(c++版本),遵循一下几步: 1.在对话框资源中增加一个Static控件,ID为IDC_STATIC_3D,并且把它的Notify属性设置为Tru ...

  3. VB6实现动态增加和删除控件数组中的控件2021-06-02

    VB6实现动态增加和删除控件数组中的控件 2021-6-3修改一个BUG 控件的添加: 1From1名称改为FrmWork 2.添加Picture控件名称改为PicCharacterContainer ...

  4. 在Delphi程序中应用IE浏览器控件

    ---- 大概大家还记得Delphi的范例程序中的那个浏览器的例子吧.在那个例子中,利用控件THttp的属性和方法制作了一个浏览器.该例子用于理解THttp控件的使用方法,确实不错.但很少有人会用它作 ...

  5. 在UAP中如何通过WebView控件进行C#与JS的交互

    原文:在UAP中如何通过WebView控件进行C#与JS的交互 最近由于项目需求,需要利用C#在UWP中与JS进行交互,由于还没有什么实战经验,所有就现在网上百度了一下,但是百度的结果显示大部分都是在 ...

  6. MFC中使用TAB Control控件

    2019独角兽企业重金招聘Python工程师标准>>> MFC中使用TAB Control控件 MFC中使用TAB Control控件(转) 假如我现在有个SDI程序,View是Fo ...

  7. mac、iOS端支持自定义布局的collection控件的实现与设计

    介绍 collection控件用来实现界面的各种自定义布局,最常用其作为横向.竖向的布局控件.很早之前,系统对于collection的支持并不是很好.所以自己实现了支持自定义布局.自定义cell的co ...

  8. 【小沐学C#】WPF中嵌入web网页控件(WebBrowser、WebView2、CefSharp)

    文章目录 1.简介 1.1 WPF简介 1.2 WPF 体系结构 1.3 WPF入门开发 2.WebBrowser 2.1 WebBrowser特点 2.2 WebBrowser常用的属性.方法和事件 ...

  9. Winform实现在DataGridView控件的单元格中添加多个控件

    Winform实现在DataGridView控件的单元格中添加多个控件 背景 实现思路 关键代码 完整代码下载 背景 DataGridView控件的列是支持TextBoxColumn.ComboBox ...

最新文章

  1. 【VS开发】Return与Exit的区别
  2. java元婴期(24)----java进阶(mybatis(3)---动态sql(重点))
  3. 一个祸害我很久的东东——事件过滤器之按键触发
  4. drop sql语句_用于从表中删除数据SQL Drop View语句
  5. java list 内存分页_Java List内存分页
  6. 几道查询树上点之间的路径的题目
  7. Linux 系统调优相关工具
  8. Atitit webdav的使用与配置总结attilax总结 目录 1. 支持的协议 2 1.1. http File unc 2 2. 应用场景 2 2.1. 远程文件管理实现功能 文件建立
  9. 一张帖搞定同学们入学黑马前所有难题
  10. Kylin启动报错 ERROR: Check hive‘s usability failed, please check the status of your cluster
  11. python字符串乘以2是什么意思_什么是字符串?(2)转义字符与运算符
  12. html中图片放大镜效果图,HTML5使用不同精度的图片来实现图像放大镜效果
  13. 【python】详解multiprocessing多进程-Pool进程池模块(二)
  14. [可联网]ps4共享屏幕到笔记本
  15. S5PV210 对电源、地,DQ, DQM, DQS 信号的布线向导
  16. Hello hello ~
  17. git 详解-进阶篇
  18. 0xc000007b应用程序无法正常启动解决方案(亲测有效)
  19. 今天聊聊电商系统中红包活动设计
  20. 我参加NVIDIA Sky Hackathon(语音识别模型训练)

热门文章

  1. 解决Python2.7的UnicodeEncodeError: ‘ascii’ codec can’t encode异常错误
  2. openresty nginx升级版
  3. 分享代码到GitHub
  4. 关于 iOS 10 中 ATS 的问题
  5. React的深入解密一
  6. nginx搭建rtmp协议流媒体服务器总结
  7. FineUI利用JS取控件的值
  8. avrstudio5 拨码管
  9. sqlserver 参数化查询 允许为null_1+Null 居然等于 Null
  10. 大学计算机专业选哪个,这么多大学都有计算机专业 究竟选哪个好呢?