【iOS】3GShare项目总结

前言: 这算是我写的第一个ios项目,算是达到了较为熟练的使用一些基础UI控件的目的,同时增加了使用Xcode找bug改bug的能力

一. 首页

第一个难点应该就是“登录注册“了,这里第一次真正使用到了协议传值的方式,加深了对从后往前(反向)传值的理解

二. 第一个界面

整个界面的结构是,创建一个tableView,section为1,row数为5,row == 0使用一个自定义RollTableViewCell,里面使用UIscrollView实现,row==1~5时,使用自定义ShowTableViewCell

1. 无限轮播图

原理很简单,以4张图片为例,设置一个长度为6*width的scrollView,以4-1-2-3-4-1的顺序放上图片,然后在轮到最后一个1的时候,没有动画瞬间切回到前面的1,并继续有动画的切到2即可
这里用到了一个新控件,UIPageControl。
用到一个定时器控件。记得在手指滑动开始时停止定时器,滑动结束后再重新开启定时器。

2. 点赞,分享

用到了协议传值,不多说

三. 第二个界面

1. 搜索大白

用到了一个UISearchBar控件

2. 上传说说

1)选择图片中用到了一个照片墙 (这里比较难)
2)折叠cell

四. 第三个界面

整体结构,就是设置一个UIScrollView,画布宽度设置为3width,然后注册并创建3个tableView,画布的位置分别设置为0,width,width2 ,在cellForRowAtIndexPath方法中利用不同的tag值分别创建3套tableVIew。
另外用到了一个新的控件:UISegmentedControl。主要就是设置两个点击方法,通过_scrollView.contentOffset.x来设置_segmentedControl.selectedSegmentIndex,和通过segmentedControl.selectedSegmentIndex来控制_scrollView setContentOffset:CGPointMake。

五. 第四个界面

这个界面过于简单,就一个简单的tableView,就不说了

六. 第五个界面

这是最复杂繁琐的的一个界面,因为内容较为繁琐但其实并不算难,回出现多个controller中使用到的cell可能是类似的,所以我们可以使用同一个cell,根据不同的reuseIdentifier,来设置不同的cell使用到的控件和layoutSubviews方法,这样可以减少一些代码量。

代码复用收获

这里笔者出于研究的目的,初次使用了父子类的复用方法。
由于第五个界面中的 “我上传的“ 和第三个界面非常相似,只有很少部分不同,因此我们选择抽象出一个基类BaseViewController,将完全相同的内容放在这个基类中,然后这两个界面都继承与这个基类,并将自己独特的一小部分补上或对父类方法进行重写。

这里需要注意的是:

  1. 如果希望子类能调用父类的方法,在父类的.h文件中,需要声明该方法。
  2. 在子类中,无法使用 下划线_的方式来访问父类中的属性,需要使用 self. 的方式来进行访问。

总结

写代码的途中,也改了一些bug

  1. 有时会由于手误在循环中敲出死循环
  2. button.subviews[0]是它自己,下标为1才是真正的第一个子视图
  3. 一定要记得刷新数据[_tableView reloadData];
  4. 有时会出现形参名和属性名完全相同的情况,这个时候一定要分清自己使用的是哪一个,不要把_name和name(行参名)混用,这样可能会出现实际逻辑和所想逻辑不同的情况。(我出在了照片墙那一块)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值