通常,UITableView是这样的:
[ cell 1 ]
[ cell 2 ]
[ cell 3 ]
[ cell 4 ]
但我想制作我自己的UITableView:
| | | |
| c | c | c |
| e | e | e |
| l | l | l |
| l | l | l |
| | | |
| 1 | 2 | 3 |
| | | |
我希望用户向左和向右滑动以获得与原始UITableView类似的行为....我该怎么做?谢谢。
答案 0 :(得分:22)
使用带有UIView的UIViewController,将表的UITableView添加到控制器视图,然后在代码方面只有一行:
- (void)viewDidLoad
{
[super viewDidLoad];
// horizontal table
// -90 degrees rotation will move top of your tableview to the left
myTableView.transform = CGAffineTransformMakeRotation(-M_PI_2);
//Just so your table is not at a random place in your view
myTableView.frame = CGRectMake(0,0, myTableView.frame.size.width, myTableView.frame.size.height);
...
答案 1 :(得分:13)
这里有一个项目可能也有用,http://github.com/TheVole/HorizontalTable
答案 2 :(得分:4)
EasyTableView可以执行水平表
答案 3 :(得分:2)
如果你想使用textLabel,可以使用:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier];
}
cell.textLabel.frame = CGRectMake(0,0, cell.frame.size.width , cell.frame.size.width); // it's very important!!!You must set frame of textLabel, because you can have a problems with displaying you table;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
CGAffineTransform trans = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI_2);
cell.textLabel.transform = trans; // rotating you caption;
cell.textLabel.text = @"tra-tata";
cell.textLabel.textAlignment = UITextAlignmentCenter;
return cell;
}
答案 4 :(得分:1)
我认为没有可用的控件可以让你这样做。你最好的选择就是自己动手。
简而言之,您将希望子类化UIScrollView,这将允许您拥有比屏幕上有空间更多的单元格。它还将整理所有滑动行为。
在这个滚动视图中你想要放置一组单元格 - 我是UIView的子类,而不是试图强迫UITableViewCell与你的Scroll View一起玩。
这只是如何解决问题的一个简单示例。您希望复制UITableView有多少功能?
答案 5 :(得分:0)
除了子类化UIScrollView之外,您可以尝试对现有的UITableView应用90度旋转。但是,我不知道这会如何影响滚动,你必须将单元格视图专门化为“unrotate”。
我认为继承UIScrollView是一个更好的选择。在委托,dataSource和可重用单元格中使用UITableView类作为指导。
答案 6 :(得分:0)
您所拥有的只是一个纵向显示的标准表格,但您手持横向模式。将每个单元格的内容旋转90度并在那里。并且一定要忽略任何方向更改通知。
答案 7 :(得分:0)
在您自己的代码中构建类似于UITableView的东西并不是非常困难。如果你能找到它,WWDC09的专家级Scroll Views会话就有了一些很棒的示例代码。
答案 8 :(得分:0)
我推荐EasyTableView和PSTCollectionView,它们是github上很棒的横向tableview项目,很多都是盯着看。