旋转设备时调整tableView的大小

时间:2014-02-07 08:39:21

标签: ios objective-c xcode resize tableview

旋转设备时,我的应用程序出现问题。 tableView扩展到设备视图,导致它无法访问。

如何让表调整大小以免发生这种情况?

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
        toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
    {
        NSLog(@"Device is rotated sidewise");

        myTable.delegate = self;
        myTable.dataSource = self;
        myTable.scrollEnabled = YES;

        [self.view addSubview:myTable];

        myTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 148, 320, 10)];
    }
}

在使用xcode或objective-c进行编码时,我是一个完整的菜鸟。我目前正在研究这个问题,所以请对你的答案保持友好。

3 个答案:

答案 0 :(得分:1)

尝试使用自动调整遮罩并且不要在方向上设置框架。使用下面的链接来了解自动调整。使用自动调整功能,您无需以编程方式编写任何代码。 http://www.techpaa.com/2012/05/understanding-uiview-autoresizing.html

答案 1 :(得分:1)

如果关闭Autolayout,那么您的autoresizemask应该如下所示

Autosizing masks needs to adjusted as per pic

答案 2 :(得分:-1)

如果要通过界面构建​​器

添加tableview,则可以使用autolayout

如果您需要以编程方式执行此操作,请按以下步骤更改代码

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
        toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
    {
        NSLog(@"Device is rotated sidewise");
        myTable = [[UITableView alloc] initWithFrame:CGRectMake(0, 148, 320, 10)];
        myTable.delegate = self;
        myTable.dataSource = self;
        myTable.scrollEnabled = YES;

        [self.view addSubview:myTable];


    }
}