横向TableView

前几天在项目中遇到一个需求,实现一个横向的左右滑动翻页进入上一条或下一条详情。
刚看到的时候便有了几个想法:

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。

你可能感兴趣的:(横向TableView)