Насколько я понял, если вы указали размер в 100 точек в iOS, его следует интерпретировать как «100 пикселей с независимой от плотности пикселей», так что на экране он будет занимать такое же количество физического пространства, независимо от устройство.На iOS, почему 100 "точек" различного размера на разных устройствах?
Так что, если 2 устройства имели одинаковую плотность пикселей, каждое отображение 1 указывает на 2 пикселя, 100 точек занимают 200 пикселей на этих устройствах, и они будут иметь одинаковый физический размер. Если Device_B имеет 2x плотность пикселей устройства Device_A (а устройство A - 1: 1 пиксель: точка), то 100 точек занимают 100 пикселей на Device_A и 200 пикселей на Device_B, которые будут потреблять один и тот же физический экран. Я что-то упускаю?
Я тестировал UILabel размером 100x30 на iPhone 6 и iPad Air 2, и они определенно не занимают одинаковые физические размеры на экранах - метка 100x30 на экране iPhone 6 выглядит примерно 2/3 - тот же физический размер по сравнению с iPad.
Вот очень простой тестовый код
- (void)viewDidLoad {
[super viewDidLoad];
[self.view setBackgroundColor:[UIColor blueColor]];
UILabel *testLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 20, 100, 30)];
testLabel.text = @"Test Label";
testLabel.backgroundColor = [UIColor greenColor];
[self.view addSubview:testLabel];
}
Я приложил изображение 2 физических устройств, оказывающих ту же метку (IPad слева, iPhone справа).
Вы, кажется запутанным "PPI" (пикселей на дюйм) с 1x/2x/3x плотность пикселей. Это две совершенно не связанные понятия. – rmaddy
@rmaddy Может быть, я? Для меня эти звуки очень связаны. Количество пикселей на дюйм для меня, как плотность пикселей? – mbradber
У них нет одинакового ppi. IPhone 6 имеет более высокий ppi, чем iPad Air 2. – dan