调研
目标:简洁轻量性能优越
调研了github上众多项目多数是scrollview 通过addimageview来做的。
少数用pagecontrol或scrollview+scrollview,还个别用UICollectionViewCell。
就scrollview而言,感觉自己要控制的东西太多。
最终决定用UICollectionView+scrollview来做,可以利用UICollectionView的复用机制,有效降低内存控制成本,代码也会结构清晰。
开始撸(让我们一起摇摆)
scrollview这个组件在IOS上真是刷新了我以往的认知,他和安卓上有很多不一样的地方,这些地方可以暂且归纳为功能比安卓强,强很多很多,就单能手势缩放旋转就甩了安卓一大截,冷静下来细想,这也许是设计者的初衷不一样,我反而更加觉得安卓很小巧清晰目的明确,而IOS的太强能做的事情太多不一定是种优秀的设计。
步骤:
1.跳转到预览界面
选照片的界面已经有navigationbar所以用push来跳到预览界面,这样方便返回按钮(少写代码)
PreviewViewController * dmc=[[PreviewViewController alloc] init];
dmc._delegate=self;
dmc.preArray=selectArray;
[self.navigationController pushViewController:dmc animated:YES]; // 调用pushViewController
2.到了预览界面
大布局的思路是顶部和底部bar都用viewcontroller自带的,代码写的少而且在屏幕旋转横屏时候不用单独适配。UICollectionView则是全屏。
顶部bar
返回自带的,title 模仿了ios 11的系统相册样式
双层显示具体年月日,自定义一个UILabel来达到效果。
如何做双层呢很简单\n就行
NSString * str=[NSString stringWithFormat:@"%@\n%@",day,time];
但系统相册是的双层式日期比时间大,效果很美。那如何实现呢?两个UILabel?这太不优雅了。
最用用到了NSMutableAttributedString,这个是带属性的NSString,带属性的String!!!厉害呀酷
//创建一个带有属性的字符串比如说颜色,字体等文字的属性
NSMutableAttributedString * attrStr=