我分析APP,发现居然使用的是UITableview水平滚动,而不是正常认为的UICollectionView.
简要说明:
1、先将tableview逆时针旋转90度: self.tableView.transform = CGAffineTransformMakeRotation(-M_PI_2);
2、再将UITableViewCell顺时针旋转90度: cell.contentView.transform = CGAffineTransformMakeRotation(M_PI_2);
3、另外需要注意的是
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return tableView.frame.size.width; // 返回的是宽度
}
效果图:
代码如下:
#import"ViewController.h"
@interfaceViewController()
@property(weak,nonatomic)IBOutletUITableView*tableView;
@property(nonatomic,strong)NSArray*tableDataArray;
@end
@implementationViewController
staticNSString*MyCellID =@"thisIsMyCellId";
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view.
self.view.backgroundColor= [UIColorwhiteColor];
self.tableDataArray=@[[UIColorredColor], [UIColoryellowColor], [UIColorblueColor]];
self.tableView.separatorStyle=UITableViewCellSeparatorStyleNone;
self.tableView.scrollsToTop=NO;
self.tableView.transform=CGAffineTransformMakeRotation(-M_PI_2);
self.tableView.showsVerticalScrollIndicator=NO;
self.tableView.pagingEnabled=YES;
self.tableView.bounces=NO;
[self.tableViewregisterClass:[UITableViewCellclass]forCellReuseIdentifier:MyCellID];
_tableView.delegate=self;
_tableView.dataSource=self;
}
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
{
returnself.tableDataArray.count;
}
- (CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath
{
returntableView.frame.size.height;
}
- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
UITableViewCell*cell = [self.tableViewdequeueReusableCellWithIdentifier:MyCellIDforIndexPath:indexPath];
cell.contentView.transform=CGAffineTransformMakeRotation(M_PI_2);
cell.selectionStyle=UITableViewCellSelectionStyleNone;
UIColor*color = [self.tableDataArrayobjectAtIndex: indexPath.row];
[cell.contentViewsetBackgroundColor: color];
returncell;
}
@end