前几天在项目中遇到一个需求,实现一个横向的左右滑动翻页进入上一条或下一条详情。
刚看到的时候便有了几个想法:
1.pageviewcontroller
2.scoreView像轮播图一样用三个view奶实现
3.横向tableview
经过比较之后选择了第三种方式,原因无其他,重用机制,大量数据不会卡顿。
横向tableview
先将tableview左旋转90度:
CGFloat f = (kScreen_Height-kNavBar_Height-kScreen_Width)*0.5;
self.myTableView = [[UITableView alloc]initWithFrame:CGRectMake(-f, f, kScreen_Height-kNavBar_Height, kScreen_Width) style:UITableViewStylePlain];
self.myTableView.dataSource = self;
self.myTableView.delegate = self;
self.myTableView.transform = CGAffineTransformMakeRotation(-M_PI/2);
self.myTableView.backgroundColor = kColor_f2f2f2;
self.myTableView.pagingEnabled = YES;
self.myTableView.showsVerticalScrollIndicator = NO;
[self.view addSubview:self.myTableView];
要使其旋转之后能刚好和屏幕一致,则TableView的
横坐标x为: -(屏幕高度-屏幕宽度)0.5
纵坐标y为:(屏幕高度-屏幕宽度)0.5
改变tableview的transform
self.myTableView.transform = CGAffineTransformMakeRotation(-M_PI/2);
这样旋转之后刚好和controller 的view重合。
旋转cell
旋转tableview之后还需要将cell右向旋转90度:
cell.transform = CGAffineTransformMakeRotation(M_PI/2);
这样既可实现一个横向的tableview。