各种效果原理(抽屉,多个tableView复用)

1.抽屉效果原理

  • 添加3个UIView1,2,3到控制器上并记录属性。
  • 添加当前view3的手势,实现手势方法(不能使用view3.transform,用frame根据偏移量计算view3的frame)
  • 根据拖动时的偏移量来判断view2,view3谁隐藏
  • 根据手势的几个状态来设置抽屉效果并计算view3的frame(UIGestureRecongnizerStateEnded【手指松开】)
  • 添加点按手势复位(设置frame)

注意:当一个控制器的View添加到另一个控制器的View上,那么他的控制器也要成为另一个控制器的字控制器。

2.多个tableView的复用

  • 方法一,用UICollectionView中(默认上下滚动,使用layout.scrollDirection = UICOllectionViewDirectionHorizontal左右滚动)自定义cell(添加tableView),利用系统的缓存池自动缓存。
  • 在UIscollectionView添加3个tableView,(根据缓存池原理)最前面1号消逝后拿到最后面

3.在一个控制器分离多个UITableView的数据源和委托

  • 在numberOfRowsInSecrion中加一个判断拿到的tableView不同区分不同的行
  • 在cellForRowAtIndexPath中加一个判断拿到不同的tableView不同区分不同的代理方法
  • 例如两个UItableView有联系时根据tableView代理拿到第几个Cell,在发送数据给服务器,刷新另一个tableView的数据
  • 设置contentInset,设置AFN__weaktypeof(self) weakSelf,

注意:awakeFromNib 当从storyboard或xib中创建就会调用一次,cell中系统自带一个setSelected方法用来监听点击和取消点击

注意:bottonLayout Guide(tabBar)约束时会有短暂时间存在,别设置错了

注意:数据量太大时不要用NSInteger存id(会导致数组越界),用字符串

原文地址:https://www.cnblogs.com/xieyunqq/p/5694812.html