iOS--简易相册

学习UI已经一周左右,制作了一个简易相册!效果图如下:

效果图

该工程在MRC模式下创建,需注意deallocrelease,这段代码并没有按照写好后的顺序出现,而是按照问题出现及思考的顺序书写,阅读时需要注意

代码部分:

MyHeader.h:


由于需要大量使用屏幕的宽与高,所以先在MyHeader.h中声明两个宏定义

宏定义


AppDelegate:

初始化window,设置视图控制器及添加导航栏!此处就不一一赘述!

注意:

这段代码将导航栏的透明度设置为不透明,在接下来的书写中需要注意要预留出导航栏的高度!


ViewController:

设置导航栏标题,导航栏颜色及风格:


初始化首页的滚动视图,以此实现首页上下滑动(以下代码书写在loadView中):

由于预留导航栏的高度,所以需要在设置滚动视图的高度时减去64,首页显示方式为3行2列,所以设置滚动视图容量时只需将图片大小乘三就足够了!


添加图片:

共有6张图,用for循环6次,由于偏移量的改变,所以需要进行if判断,图片用1-6命名,可以充分利用i,名为奇数的放在左边,偶数的放在右边!


用tag值对图片进行标记,图片的用户交互默认为关闭,需要手动开启,否则为图片添加手势会无效


将轻拍手势添加给图片,在下面需要写一个didTaoImageView的手势实现页面跳转


在顶部引入头文件,pushViewController方法实现跳转,animated后写YES代表开启动画

点击图片,实现跳转,效果如下:


卡顿

问题1:卡顿

跳转过程中会出现卡顿现象,此时需要在新界面的文件中将self.view给一个背景色!

修改后效果如下图:

无导航栏标题

问题2:导航栏标题

我们需要根据选择的照片来判断是第几张图片,所以跳转后页面的导航栏标题不能写死,要能根据选择的图片进行初始化,这里用到了属性传值

首先,需要在DetailViewController.h中声明一个整型变量,这里命名为num,然后在ViewController.m中进行属性传值

6张图片的tag值分别为1001-1006,减掉1000就得到了对应第几张,将number的值赋给num


DetailViewController.m:

在viewDidLoad中设置偏移量(确保页面跳转后显示在前一页点击的图片)及导航栏的标题

在延展里声明一个属性scrollView,类型为:UIScrollView 此处也需要用到屏幕的宽与高,所以也需进行宏定义,此时使用到了前一页传过来的num


导航栏标题



这里依然会用到一个大的滚动视图,在延展里将滚动视图写成属性,注意要将导航栏的64减掉,并且需要整页翻动


添加图片:

添加后效果如下:


标题不可变

问题3:标题不随翻页改变:

翻页后标题不会实时改变,此时需在DetailViewController.h中签订<UIScrollViewDelegate>协议.在DetailViewController.m中设置代理人:

协议中有一个方法,结束减速,也就表示滑动结束:

在方法中修改标题,需用到x方向的偏移量,除以屏幕的宽就是翻了几张,由于第一张没翻页,第二张翻了一页,第三张翻了两页,以此类推,需要在计算结果后加一,就能表示当前图片为第几张.这样简易相册就完成了!

缺点:

1.功能少,只能实现简单的翻页和页面跳转!

2.开销大,在循环中创建UIImageView,每走一次循环,便都需完成创建与释放的过程,图片多就需要创建相对应数量的UIImageView,在电脑上内存还够用,但6张图片就已接近80M,在手机上无法使用

3.耦合度高,需在创建相册时提前写好图片的张数

再附上一张效果图:


由于学习时间较短,还不能写出太好的代码,还请各位多多帮助!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 内容抽屉菜单ListViewWebViewSwitchButton按钮点赞按钮进度条TabLayout图标下拉刷新...
    皇小弟阅读 46,904评论 22 665
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 24,124评论 8 183
  • 今晚上接孩子回家,我家门前落下了好多的银杏树叶,很是漂亮!女儿下车子开开心心的捡了一大堆。我问她为什么?她只...
    千金格格阅读 161评论 0 0
  • 今夜我把失眠藏在枕下 阑尾炎的疼痛弥漫开来 无数个恶魔在教唆 我怒吼一声,窗外的树在哆嗦 今夜我走向手术室听着刀割...
    霖雨凌零阅读 160评论 0 1
  • 匆匆忙忙又回到了家里。从闭塞封闭的高三教室回到了时刻不在变化的花花世界里,从冷酷激烈的高三教室回到了温暖安静的...
    名字被人抢走了啊阅读 275评论 0 0