最近在研究scrollview的时候,发现其实tableview同样也能完成我们想要的效果,废话不多说,上代码
- (void)viewDidLoad
{
[super viewDidLoad];
UITableView *tableView = [[UITableView alloc] initWithFrame:CGRectZero];
tableView.transform = CGAffineTransformMakeRotation(M_PI/-2);
tableView.frame = CGRectMake(0, 0, 320, 568);
tableView.rowHeight = 320;
tableView.bounces = NO;
tableView.pagingEnabled = YES;
tableView.showsHorizontalScrollIndicator = NO;
tableView.showsVerticalScrollIndicator = NO;
tableView.delegate = self;
tableView.dataSource = self;
[self.view addSubview:tableView];
}
#pragma mark - UITableView Delegate
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 10;
}
- (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.transform = CGAffineTransformMakeRotation(M_PI/2);
cell.textLabel.textAlignment = NSTextAlignmentCenter;
}
if (indexPath.row % 2 == 0) {
cell.backgroundColor = [UIColor redColor];
}else{
cell.backgroundColor = [UIColor orangeColor];
}
cell.textLabel.text = [NSString stringWithFormat:@"%ld",(long)indexPath.row];
return cell;
}
打完收工。
参考:
[http://code4app.com/ios/%E6%B0%B4%E5%B9%B3tableView/519594ed6803faeb49000000]
这里我发现两个问题
1.例子中scrollview的frame设置了两次,但是第一次会被第二次覆盖,不知道他咋想的?
2.[table.layer setAnchorPoint:CGPointMake(0.0, 0.0)];作者设置了这个属性,自己经过研究才发现这是个锚点的设置,不明白作者这样设置锚点的意义何在?
[http://wonderffee.github.io/blog/2013/10/13/understand-anchorpoint-and-position/]