我正在使用以下行创建水平的 UITableView:
self.tableView.transform = CGAffineTransformMakeRotation(-M_PI * 0.5);
cell.transform = CGAffineTransformMakeRotation(M_PI * 0.5);
我想要做的是以全屏宽度为中心设置在屏幕上。初始化后一切似乎都很好,但是当我旋转设备时,我失去了控制;/
以下是我用来初始化的方法:
- (void)viewDidLoad
{
[super viewDidLoad];
self.imageDownloadsInProgress = [NSMutableDictionary dictionary];
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 200, self.view.bounds.size.width)];
self.tableView.autoresizingMask = UIViewAutoresizingNone;
self.tableView.transform = CGAffineTransformMakeRotation(-M_PI * 0.5);
self.tableView.center = self.view.center;
self.tableView.rowHeight = 200.0f;
}
和一切都出错的轮换处理程序:
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
[UIView beginAnimations:nil context:nil];
if(fromInterfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
fromInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
self.tableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, 200, self.view.bounds.size.width)];
self.tableView.center = self.view.center;
} else {
self.tableView.frame = CGRectMake(0, 0, self.view.bounds.size.width, 200);
self.tableView.center = self.view.center;
}
[UIView commitAnimations];
}
我想也许在一些调整大小的面具上保持垂直中心和水平拉伸?