1.京贝尔数据
1.数据模型
2.初始化加载数据


3.轮播


4.gridItem分类
4.1.获取gridItem分类数据模型.





4.2.在数据源方法,设置模型,返回三排三种cell

4.3.gridCell.添加子控件.

4.4.layoutSubviews

4.5.中间grid Masonry设置约束

4.6下边图靠上,图设小,字靠紧

4.7.不再继承自gridCell,单独建类,不会继承到Masonry约束,非常流畅.
5.主题推荐
5.1模型数组
5.2.ViewModel

1 | [self.homeViewModel setData:^{ |


6.热门好店
1.数据源

6.2.从模型数组中取出热门 好店模型数组

6.3.UICollectionViewDataSource

6.4.设置inset,itemsize

6.5.PS测量尺寸,BC,scale,计算比例.

6.6.设置图片,需要缩放(不需要)


6.6.2.从缓存中找sd下的图


6.6.3.不需要缩放,用aspactFill,因为在总控制器设定的尺寸不对
6.7.添加locationLabel.调节约束.
6.8.设置圆角在LayoutSubviews


6.9.添加header


6.10.注册

6.11.设置尺寸

7.大牌甄选
7.1.type

7.2.用type取[self.homeViewModel getDataArray:_type]

7.3.设置type给子cell,分别取不同数据

7.4.设置header

7.5.设置动态颜色

7.6.设置总尺寸和头部约束

8.设置单例HomeViewModel,防止内存一直增加.


9.推荐店
1.建cell类和xib



1.1.initWithFrame,loadNibNamed

1.2.layourSubviews

1.3.setStoreModel

2.注册ReuserIdentifier,nibWithName, registerNib:nib forReuseIdentifier:

3.加属性


4.懒加载初始化
5.读模型的方法JSON to 模型数组

6.模型类建模


7.给collect数据

8.设置item大小

9.调整子控件位置,添加下边线,

10.设置navbar颜色,滑动通知改变背景色


11.深色监控
1 | // 获取当前模式 |
12.设置tabBar
1.中间按钮用圆角去掉黑边,需要自定义tabbar,在layouSubViews里.

2.设置文字颜色和背景色,使用SF Symbel,作图标,可以改变颜色.


3.控制器属性数组

4.用数组添加子控制器和items

5.中间按钮添加事件

\break
13.附近nearBy,横向跨屏滑动的效果,用的是DCPagerController做到了
1.新建控制器.

2.修改DCPagerController,总体背景色

3.去掉底部一条黑线


4.获取网络数据,URL 没有length错误.
5.标签没字,要看赋值那里是不是有问题,尤其第一个显示了最后一个,可能就是全都赋给了第一个.
6.MR_NearByViewController.m
7.创建子控制器

13.6.pagerController添加子控制器
1.旧版:四种控制器麻烦

2.新版一个类,四个对象.少三个类,便于修改,就是一个类加了个对象.


3.用自己的对象


7.在init里建collectview

8.CollectView数据源

9.给Cell赋值


10.附近商店模型

11.从模型数组中取出附近模型数组<-HomeViewModel


13.12. 四个模型数组对应四组店<-HomeViewModel 改了

13.12.1新版控制器一个类,四个对象.少三个类,便于修改,就是一个类加了个对象.

13.12.2.统一控制器,添加模型数组属性

13.12.3.用自己的模型数组当数据源

13.13.设置title,导航栏的设了不好使 <-.MR_NearByViewController.m

13.14.设置滑页控制器颜色和模式
13.15.更改podfile,防止自动更新pagerController
14.地图计算距离用原生CoreLocation
1.加框架

2.遵守协议CLLocationManagerDelegate

3.请求使用位置
4.添加用户位置属性

5.懒加载中开始update位置 ,改了

6.update完就停止.delegate
7.iOS获得用户位置
8.Please note that in iOS 11 and later,
a third key has to be supplied to your info.plist: NSLocationAlwaysAndWhenInUseUsageDescription
9.Location and Maps Programming Guide
10.教程里的代码都不好使,也许只是有延迟
11.使用的是高德地图.
1.百度开发者网站:http://lbsyun.baidu.com/
2.cocoapod安装有182M,太大了,换单独的包.
3.注册app

4.导入库

5.距离计算在服务器端.
15.详情页
1.导航

2.颜色
3.修改naviCtrl

15.4.初始化 背景色

16.模型数据
1.MS_StoreInfo and MR_DetailModel


2.懒加载数据到模型

3.传indexPath取数据.

17.详情:MR_StoreDetailViewController.m->添加View.

17.1.setupCollectView

17.2.导入头文件

17.3.定义重用ID

17.4.创建CollectionView

17.5UICollectionViewDataSource

17.6.MR_ShuffleCollectionViewCell

17.7.设置使用的cell

17.8.MR_ShuffleCollectionViewCell.m

17.9.设置button,圆角
1 | /** |

17.10.通知打开新控制器

18.详情相册,MR_DetailImagesCollectionViewController
18.0.带字典参数的通知

18.1.接受通知处理点击

18.2.点击推出图片展示控制器

18.3.建MR_DetailImagesCollectionViewController

18.5 声明id

18.6.初始化collectView

18.7.建模型,有值的都写才行

18.8.JSON 转模型section模型的数组

18.9.为数据源写方法,到时按组取数组就好


18.10 数据源,从模型数组中取就好

18.11 section 头

18.12. sectionLabel,有了模型,在DetailImageVC中处理不需要这个方法了

18.13.这里设不到text

18.14.必须在这setter这里设text,否则不刷新 18.商品图片集end.
19.详情第一组,商店信息模
19.1.添加模型

19.2找到了QuickType,pasteJsonAsCode,复制然后菜单里找就好

120个Key,手动写手累坏了
19.3.在首页选中item时赋值getStoreInfoForIndexPath:(NSIndexPath *)indexPath


19.4.添加Views
_imageButtonImage __NSCFString * @”https://jd-img.gbei.cn/upload/storeImage/yqbXfqxVtkh.jpeg" 0x0000000282dfa850
19.5.LayoutSubviews


20.带下划线可放大分组标题菜单-MR_SectionMenuFooter
20.1.bolck设置属性



20.2.设置进度是宽度的倍数

21.添加滚动可停住的组菜单(可以滚动悬停)
21.1.添加属性

21.2.懒加载悬停组菜单
21.3.根据滚动位置设置设置组菜单显示隐藏

22.选中按钮滚到指定的View
22.1.选中按钮滚到指定的View,选中按钮发送通知,并且带着index

22.1.选中按钮滚到指定的View,接收通知

22.3.选中按钮滚到指定的View,通知处理


22.4.选中按钮滚到指定的View,滚到指定组

23.组菜单根据滑动选中按钮
23.1.组菜单根据滑动选中按钮,组菜单被拉下来,选中第一个

23.2.根据滚动的位置和记录的headerY值们对比确定选中哪个按钮

23.2(旧).组菜单根据滑动选中按钮,停止减速时设置选中哪个,这个不好使
24.首页第二三组详情
24.1.首页第二三组,详情页URL
24.2.用URL获得详情页面数据并显示

25.首页上拉刷新


26.订单
26.1.MR_OrderSubMenu
26.2.MR_OrderViewController
26.3.MR_OrderSubViewController
27.个人中心颜色
28.分类颜色DCCommodityViewController
29.显示地图
29.0.定义常量


29.1.发通知

29.2.按钮添加动作

29.3.接收通知

29.4.地图,加载控制器,传坐标

29.5.接收坐标

29.6.添加地图,并定位到指定位置

29.7.自定义大头针图片

30.地图气泡
1.Label文字 CustomAnnotationViewController

30.2 地图气泡文字 CustomAnnotationView

30.3.Construct custom callout.

30.5.地图气泡设置文字和直接显示气泡


31.跳转外部地图导航
31.1.添加白名单

31.2.发通知
31.3.接收通知
31.4.alertVc lazy load

31.5.建立动作菜单
31.6.显示动作菜单

31.7.解除通知监听
31.8 调用苹果地图

31.9 调用高德地图

31.10 调用百度地图

32.根据坐标获得地点名

33.在设置模型时用高德地图计算距离MAMetersBetweenMapPoints

34.用户位置用高德地图获得
34.1.用户位置用高德地图获得,管理者

33.2.aMaplocationManager高德位置管理者

34.3.隐私请求获取位置信息,和定位

34.4.懒加载时高德地图获取位置

34.5.高德地图获取到位置

34.6.高德地图获取失败报错
35.高德地理编码(地名得坐标)
35.1高德地理编码(地名得坐标) 1.API对象
35.2. protocol AMapSearchDelegate
35.3 AMapGeocodeSearchRequest created
35.4.aMapSearchApi make a request, will get a response
35.5 AMapSearchDelegate method onGeocodeSearchDone 需要滚动才能刷新,在设置model那里不用
35.6.分类增加属性,用于保存距离
35.7.分类增加属性,用于保存距离
35.8 获取StoreModel解析时地理编码并计算距离,这个需要滚动,不如在setModel时计算
36.个人中心颜色
37.个人中心正弦曲线分割


38.监控暗黑模式切换,更换图片.traitCollectionDidChange








