博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[iOS] 在UIToolBar中增加UILabel等控件(xib/storyboard图形界面方式)
阅读量:6840 次
发布时间:2019-06-26

本文共 1526 字,大约阅读时间需要 5 分钟。

作者:

  在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]; //添加文本

 

出自——

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

转载地址:http://eawul.baihongyu.com/

你可能感兴趣的文章
冒泡排序
查看>>
android studio 各种问题
查看>>
ios中一个开发者证书如何创建多个app应用
查看>>
创建和存储 cookie
查看>>
BZOJ2351[BeiJing2011]Matrix——二维hash
查看>>
Redis常用命令整理
查看>>
js的水仙花数的输出
查看>>
Codeforces Gym 100269 Dwarf Tower (最短路)
查看>>
mongo explain分析详解
查看>>
软件测试艺术一:程序正确性证明
查看>>
面向对象课程第二单元作业总结
查看>>
2549 自然数和分解
查看>>
ATL CLR MFC Win32 常规 的区别
查看>>
查看SQL Server Resource Database以及修改系统表
查看>>
scau实验题 8596 Longest Ordered Subsequence
查看>>
getopt例子
查看>>
浅说Java中的反射机制(一)
查看>>
jquery之行自加自减
查看>>
单向链表的有关操作(链式存储结构)
查看>>
Spring @PostConstruct and @PreDestroy example
查看>>