经验之谈—自定义tabbar(继承于UITabBar)
2015-12-16 23:58
369 查看
自定义tabbar一般来说有两种方式,一种是继承于系统的UITabBar,一种是继承与UIView的tabbar。
我们现在来看一下继承与UITabBar这种情况中需要注意的一些细节。其实继承与UITabBar我们无非是想修改一下tabbar中的子控件的frame或者是添加子控件等。
我们接下来添加一个按钮到自定义的tabbar上。
注意的地方:我们先打印一下看看UITabBar里面存在的子控件:
我们可以看出,这里打印出了除UITabBarButton之外的两个控件:UITabBarBackgroundView和UIImageView。
从尺寸我们就能很明显的看出。UITabBarBackgroundView就是这个tabbar的背景图片,然后UIImageView就是上面的那一根线。那么在自定义控件设置frame的时候,就不能直接拿出下标或者self.subviews.count。来获得子控件的个数了。要进行判断了:
因为这个UITabBarButton是一个私有的,所以我们通过上面这个方法来进行判断一下,再设置我们的frame,就去除了刚刚那两个控件的干扰。
我们现在来看一下继承与UITabBar这种情况中需要注意的一些细节。其实继承与UITabBar我们无非是想修改一下tabbar中的子控件的frame或者是添加子控件等。
我们接下来添加一个按钮到自定义的tabbar上。
注意的地方:我们先打印一下看看UITabBar里面存在的子控件:
我们可以看出,这里打印出了除UITabBarButton之外的两个控件:UITabBarBackgroundView和UIImageView。
从尺寸我们就能很明显的看出。UITabBarBackgroundView就是这个tabbar的背景图片,然后UIImageView就是上面的那一根线。那么在自定义控件设置frame的时候,就不能直接拿出下标或者self.subviews.count。来获得子控件的个数了。要进行判断了:
[code]for (UIView *child in self.subviews) { Class class = NSClassFromString(@"UITabBarButton"); if ([child isKindOfClass:class]) { //设置frame的代码 } }
因为这个UITabBarButton是一个私有的,所以我们通过上面这个方法来进行判断一下,再设置我们的frame,就去除了刚刚那两个控件的干扰。
相关文章推荐
- IO基础-UITabBarController
- UINavigationController修改默认的动画
- requestDisallowInterceptTouchEvent
- 爬爬爬之路:UI(二十) iOS动画 通知
- Arduino - 串口操作函数与示例代码大全
- 文本框空白按钮不可按
- hdoj1005(number sequence
- 【Java学习笔记】GUI界面之小游戏
- 重用UITableViewCell对象的概念
- 用UICollectionView修改微博,相对布局色熟悉
- UIControl
- VLfeat教程Quick shift
- UIPageControl
- 【Java学习笔记】GUI界面之简单动画
- UIViewController的生命周期及iOS程序执行顺序
- iOS开发UI篇—核心动画(基础动画)
- 深入理解IOS中的UIScrollView(附测试代码)
- iOS开发UI篇—Quartz2D使用(绘图路径)
- UIButton上图片和文字的位置调整
- UIButton常用技巧