Создание адаптивного макета для экрана разных размеров
Я использовал этот вспомогательный метод ниже, чтобы узнать общий размер экрана. Допустим, у меня есть заголовок вверху, 3 метки (с 25 пиксельными изображениями под каждой меткой), выровненные вертикально внизу, и кнопка внизу. Чтобы убедиться, что 3 метки расположены равномерно между заголовком и кнопкой. Я проверяю, возвращает ли метод 'isLarge', перезапускает НЕТ, если да, я минимизирую ограничения меток, чтобы приблизиться к метке центра (поскольку метка центра расположена по центру по горизонтали), чтобы они не перекрывали верхний заголовок и нижнюю кнопку. Там должен быть лучший путь.
- (BOOL)isLargeDevice {
struct utsname systemInfo;
uname(&systemInfo);
NSString *deviceType = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
NSArray *largeDevices = [NSArray arrayWithObjects: @"iPhone9,2", @"iPhone9,4", @"iPhone10,1",@"iPhone10,4",@"iPhone10,2",@"iPhone10,5",@"iPhone10,3", @"iPhone10,6", nil];
for (NSString *deviceString in largeDevices) {
if ([deviceType isEqualToString:deviceString]) {
return YES;
}
}
return NO;
}