1

我正在使用以下行创建水平的 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];
}

我想也许在一些调整大小的面具上保持垂直中心和水平拉伸?

4

0 回答 0