自定义tabbar与按钮的添加

01 - 把系统的tabbar用我们自己的覆盖

LHQTabBar *lhqTabBar = [[LHQTabBar alloc]init];

[self setValue:lhqTabBar forKeyPath:@"tabBar"];

02 对于系统私有的属性,可以通过运行时或者KVC

03 设置每个tabbar的位置

//2 调整UItabbarBtn的大小

//2.1先定义每个tabbar的宽度

CGFloat tabbarBtnW = self.width *0.2;

//2.2for 循环遍历所有的子控件

NSInteger index = 0;

for (int i = 0;i < self.subviews.count;i++){

//2.3 拿到每一个子控件

UIView *view = self.subviews[i];

//2.4判断是否是UITabBarButton这个子控件

if([viewisKindOfClass:NSClassFromString(@"UITabBarButton")]){

view.width = tabbarBtnW;

view.x = index*tabbarBtnW;

index ++;

if(index == 2){

index++;

}

//

//            if(index == 1){

//                index++;

//

//            }

//              index ++;

}

}

04   什么时候用代理,什么时候用block

如果一个自定义控件要抛出的消息比较多用代理,如果一个或者两个的话,用block也没有问题

代理跟协议的区别

协议是写好的规则,代理是要遵守的东西

iOS开发项目之四 [ 调整自定义tabbar的位置与加号按钮的位置]的更多相关文章

  1. [iOS微博项目 - 1.6] - 自定义TabBar

    A.自定义TabBar 1.需求 控制TabBar内的item的文本颜色(普通状态.被选中状态要和图标一致).背景(普通状态.被选中状态均为透明) 重新设置TabBar内的item位置,为下一步在Ta ...

  2. iOS开发UI篇—Quartz2D(自定义UIImageView控件)

    iOS开发UI篇—Quartz2D(自定义UIImageView控件) 一.实现思路 Quartz2D最大的用途在于自定义View(自定义UI控件),当系统的View不能满足我们使用需求的时候,自定义 ...

  3. iOS开发——项目篇—高仿百思不得姐

    01 一.包装为导航控制器 UINavigationController *nav = [[UINavigationController alloc] initWithRootViewControll ...

  4. iOS开发多线程篇 11 —自定义NSOperation

    iOS开发多线程篇—自定义NSOperation 一.实现一个简单的tableView显示效果 实现效果展示: 代码示例(使用以前在主控制器中进行业务处理的方式) 1.新建一个项目,让控制器继承自UI ...

  5. iOS开发项目之MVC与MVVM

    MVC MVC,Model-View-Controller,我们从这个古老而经典的设计模式入手.采用 MVC 这个架构的最大的优点在于其概念简单,易于理解,几乎任何一个程序员都会有所了解,几乎每一所计 ...

  6. IOS开发之功能模块--自定义导航控制器类常用自定义的代码

    前言:本文篇幅不多,但是涉及到的内容却是开发中常用的. 涉及的内容: 1.统一设置导航控制器子控制器的返回按钮. 2.因为修改了系统的返回按钮,所以还需要设置手势事件. 3.隐藏底部的工具条. 这里直 ...

  7. IOS开发UI篇之──自定义UIActionSheet

    转载自:http://www.cnblogs.com/pengyingh/articles/2343200.html UIActionSheet类系IOS开发中实现警告框的重要的类,而在好多应用中,都 ...

  8. iOS开发项目名称修改

    前言:在IOS开发中,有时候想改一下项目的名字,都会遇到很多麻烦.直接改项目名吧,XCODE又不会帮你改所有的名字.总是有很多文件.文件夹或者是项目设置的项.而且都是不能随便改的,有时候改着改着,编译 ...

  9. iOS开发——项目实战OC篇&类QQ黏性按钮(封装)

    类QQ粘性按钮(封装) 那个,先来说说原理吧: 这里原理就是,在界面设置两个控件一个按钮在上面,一个View在下面(同样大小),当我们拖动按钮的时候显示下面的View,view不移动,但是会根据按钮中 ...

随机推荐

  1. 面向侧面的程序设计AOP-------《二》本质

    本文转载自张逸:晴窗笔记 AOP技术本质 2.2.1 技术概览 AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Prog ...

  2. 18.用两个栈实现队列[2StacksToImplementQueue]

    [题目] 某队列的声明如下:  C++ Code  123456789101112131415   template<typename T> class CQueue { public: ...

  3. iOS 推荐学习__bridge等ARC知识的好资料

    请下载 iOS5 by Tutorials!写得很好的!

  4. Java for LeetCode 141 Linked List Cycle

    Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using ex ...

  5. HDU1695 GCD (欧拉函数+容斥原理)

    F - GCD Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Stat ...

  6. [Android Studio] 使用本地 aar 文件

    导出aar 首先Android Library项目的gradle脚本只需要在开头声明 apply plugin: 'com.android.library' 之后就和导出apk文件一样的方法,执行 . ...

  7. Myeclipse 安装svn插件

    安装subclipse,  SVN插件1.从官网下载site-1.8.22.zip文件  访问不了可点我网盘2.从中解压出features与 plugins文件夹,复制到MyEclipse\MyEcl ...

  8. VS2013+opencv2.4.9(10)配置

    1. 下载opencv2.4.9,然后解压到一个位置 设置opencv SDK解压目录,点击Extract后解压   我是习惯于解压到这个位置的.   解压过程如上图.  2. 文件目录介绍  解压后 ...

  9. ListView滑动删除效果实现

    通过继承ListView然后结合PopupWindow实现 首先是布局文件: delete_btn.xml:这里只需要一个Button <?xml version="1.0" ...

  10. 用java程序打印菱形

    代码如下