UIToolBar
2016-03-18 22:15
417 查看
在iOS开发时,有时候需要在UIToolBar中增加UILabel等控件。见过很多资料是以代码方式完成此功能,不易维护。于是我进行了一番摸索,找到了xib/storyboard图形界面下的处理办法。
代码方式是很多资料上提到的,关键是利用UIBarButtonItem的initWithCustomView方法来绑定UILabel控件。代码如下——
出自——
/article/2068754.html
UIToolBar 上面添加任意控件
在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。
一、代码方式
代码方式是很多资料上提到的,关键是利用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]; //添加文本
出自——
/article/2068754.html
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。
相关文章推荐
- Java中1000==1000为false而100==100为true
- UISearchBar
- UITableView左滑设置更多的按钮
- 第62课:Spark SQL下的Parquet使用最佳实践和代码实战
- IOS 欢迎页(UIScrollView,UIPageControl)
- UI进阶——多线程
- PHP中require、include的区别
- UIView 中position 和anchorPoint 的了解 iOS
- ue4 常见问题解答
- UVA 1423 Guess 拓扑排序
- 交换排序—快速排序(Quick Sort)
- DEPENDENT SUBQUERY标记
- leetcode 232. Implement Queue using Stacks
- [扫描线 线段树 暴力] BZOJ 4059 [Cerc2012]Non-boring sequences
- GUI学习
- fuel5.1在vmware esxi的安装流程
- Leetcode:303. Range Sum Query - Immutable(JAVA)
- IOS控件学习之UI ScrollView(7)
- JAVA GUI界面组件学习
- 百度在线编辑器ueditor的使用