2014-02-07 3 views
1

У меня проблема с моим приложением при вращении устройства. TableView расширяет представление устройств, что делает его недоступным.Изменение размера таблицыView при повороте устройства

Как я могу заставить таблицу изменить размер, чтобы этого не произошло?

- (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)]; 
    } 
} 

Я полный noob, когда дело доходит до кодирования с помощью xcode или object-c. В настоящее время я изучаю это, поэтому, пожалуйста, будьте дружелюбны к вашим ответам.

+2

Google 'autolayout' или' viewresizing masks' в iOS – Shubhank

ответ

2

Попробуйте использовать маску авторезистировки и не устанавливайте рамку на ориентации. Используйте ниже ссылку, чтобы понять об авторезисторе. При авторезисторе вам не нужно ничего программировать. http://www.techpaa.com/2012/05/understanding-uiview-autoresizing.html

+0

Спасибо. Это прекрасно работает. – ibab

0

Вы можете использовать autolayout, если вы добавляете TableView через интерфейс строитель

Если вам нужно сделать это программно, то изменить код следующим образом

- (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]; 


    } 
} 
2

Если Autolayout выключен, то ваш autoresizemask должен выглядеть следующим образом

Autosizing masks needs to adjusted as per pic

Смежные вопросы