[IOS开发]模仿微博的客户端(1)

来源:互联网 发布:2017年建筑业发展数据 编辑:程序博客网 时间:2024/06/08 02:25

1.在 AppDelegate 文件中设置程序的根控制器

2.创建 tabbar 控制器

2.1在 DIDTabBarController 文件中创建四个子控制器,并给其设置标题和图片

2.2由于要将系统默认渲染的图片样式改成自定义的,利用 imageWithRenderingMode 方法,写了一个分类UIImage+image

2.3一共需要创建4个控制器,代码不写重复的代码,所以这个时候抽取了一个创建单个 tabbarItem 的方法- (void)everyChildViewControllers:(UIViewController *)vc andImage:(UIImage *)image andImageSel:(UIImage *)imageSel andTitle:(NSString *)title , 并且由于添加标题的时候会输入中文,会导致后面的 UIImage 输入的时候没有提示,所以一般将设置标题的选项放在最后

2.4想要将系统的默认tabbar 蓝色字体改成橘色的,想要在全局的地方更改,在类方法 initialize 中更改(程序启动的时候会讲所有的类都加载到内存中,所有类里面的 load 方法会先于程序的 main 方法执行)

3.创建navigation控制器

3.1在创建每个子控制器的方法中,可以创建navigationController,将每个控制器设为navigation的根控制器

3.2想要给navigation添加标题,需要在每个子控制器中设置,并且左右两侧的按钮也同样需要在子控制器中设置,毕竟每个控制器需要的选项是不一样的

4.设置首页界面

4.1先创建一个tableViewController(消息和发现界面同样都是tableViewController,可以同时创建)

4.2设置导航栏的左右两侧的navigationBarItem,因为我们默认和高亮的状态都需要设置,系统无法满足我们的需求,所以在创建一个UIImage的分类,先创建一个按钮,设置好不同状态的图片,再转为UIBarbuttonItem(通过initWithCustomView方法),记住不能忘记设置button的尺寸,否则button不会显示

4.3中间标题处的也同样是一个按钮,通过navigationItem.titleView属性,将button添加上去

4.4中间的按钮也是需要自定义的按钮,因为正常时候图片和文体是左右位置,我们需要将文字放在左边,所以自定义按钮,创建button的时候用创建自定义按钮的类方法buttonWithType:UIButtonTypeCustom

4.5这个按钮只有一个,在自定义的button的类中可以将不同状态的图片设置好于initWithFrame方法中以及被选中时候的背景图片

4.6在layoutSbuViews方法中交换文字和图片的位置,这里也可以写个分类,用来设置x和y值,因为x本不可以赋值,需要通过frame赋值,很是麻烦

4.7在setFrame方法中设置frame,让按钮的尺寸大一点,这样被点击的时候,后面背景的尺寸会打一写

4.8因为没有给图片和文字指定尺寸,可以再set图片和文字的方法中加一句sizeToFit方法

5.接下来创建按钮弹下来的view

5.0首先了解一下这个view的构成,首先后面是一个全屏的view,然后上面有一个imageView用来显示黑色区域,imageView中添加一个view用来连接tableView的,tableView也会赋值给这个view,设置tableView的文字,让后让tableView和cell的颜色都为无色即可

5.1先创建一个弹出框的类(DIDPopView),以及它的控制器(DIDPopViewController),因为一定会有,所以一起创建就好了

5.2定义一个类方法popView,将其初始化,使其frame等于整个屏幕,这样为之后任意点击,关闭popview做准备

5.3创建一个imageView(containView),将背景图片设置拉伸不变形的方式(此处建了一个分类UIImage+resizable)

5.4将图片的交互模式打开

5.5imageView要添加到popView的自视图上

5.6重写layoutSubViews的方法,让里面的内容,距离边框有一点距离

5.7在.h文件中创建contentView的属性,为了与控制器产生联系

5.8重写contentView的setter方法,将contetView添加到imageView上去

5.9设置代理,写一个协议并在首页的控制器实现代理方法,让其在点击屏幕的时候能够将弹下来的View移除

5.10实现View上面的内容,在首页的控制器中,将popViewController的View赋值给popView的cententView的属性,这样就建立起了他们之间的连接

5.11popViewController是继承于tableViewController的,按照tableView的实现方法,在viewDidload方法中可以先创建一个数组,用于存储内容,此处为了测试,可以先填上内容

5.12然后实现有几行的方法,每个cell现实的内容的方法,必要忘了将tableView和cell的颜色设置为无色,不要设置为没有颜色,要设置为无色(clearColor),将tableView的分割线也要消除

关于我用到的一些分类,可以到这里查看
http://download.csdn.net/detail/aa603020460/9280817

0 0
原创粉丝点击