2015-09-11 3 views
0

Я использовал UIAlertController для листа действий, пожалуйста, посмотрите изображения no.1 - старый проект, а no.2 - новый, который я создал недавно. почему высота листа действия слишком отличается?UIAlertController разница в высоте

Это мой код для обоих приложений, которые я использую. что в этом плохого? Обе цели развертывания одинаковы. Старый проект разработан в Xcode 5.1.1 и новый в Xcode 6.3.

NSArray *array = @[@"Ari",@"Gow",@"Pra"]; 
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet]; 

for (int j = 0; j < [array count]; j++) { 
    UIAlertAction *defaultAction = [UIAlertAction actionWithTitle:[array objectAtIndex:j] style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { 
    }]; 
    [alertController addAction:defaultAction]; 
} 

UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) { 
}]; 
[alertController addAction:cancelAction]; 
[alertController setModalPresentationStyle:UIModalPresentationPopover]; 
UIPopoverPresentationController *popPresenter = [alertController popoverPresentationController]; 
popPresenter.sourceView = self.view; 
popPresenter.sourceRect = [self.view frame]; 
dispatch_async(dispatch_get_main_queue(),^{ 
    [self presentViewController:alertController animated:YES completion:nil]; 
}); 

enter image description here

+0

У них одинаковые iOS? – anhtu

+0

Да, есть те же самые ios 8.3 – Gowtham

+0

И такое же устройство тоже? – anhtu

ответ

1

Это только кажущаяся высота UIAlertController. Это потому, что вы запускаете проект в симуляторе iPhone 6, но ваш старый проект не поддерживает интерфейс для размера экрана iPhone 6. В XCode 6.3 поддерживается размер экрана iPhone 6, следовательно, меньшая (видимая) высота.

+0

Но я использую ту же самую высоту (320x568) для обоих пользовательских интерфейсов. – Gowtham

+0

Использование одной и той же высоты не означает, что оно будет выглядеть одинаково во всех устройствах. Очевидно, что отображение пользовательского интерфейса будет зависеть от ** AutoLayout/Autosizing **, который вы использовали. Тем не менее, все это не должно быть проблемой. – Nishant

+0

Извините, если вы строите с использованием старого SDK, то вы не сможете поддерживать экраны iPhone 6. Вам нужно будет использовать Xcode 6.0 и выше для создания сборки для более мелких экранных устройств. – Nishant