установка размера UIImageView в ячейке UITableView программно - каково происхождение? - PullRequest
1 голос
/ 12 сентября 2010

Я пытаюсь установить размер UIImageView программно, используя:

[thisImageView setFrame:CGRectMake(x, y, image.size.width, image.size.height)];

Я пытался использовать x = 0, y = 0, но UIImageView исчезает.

Больше информации о том, почему я пытаюсь это сделать. Я пытаюсь отобразить изображение высокого разрешения на iPhone 4 без использования iOS 4 SDK (только с использованием вызовов API 3.2 SDK). У меня есть звонки, чтобы узнать, нахожусь ли я на iPhone 4, поэтому я пытаюсь удвоить размер моего UIImageView, чтобы при вводе изображения UIImage с высоким разрешением оно не было зернистым.

Ответы [ 3 ]

2 голосов
/ 12 сентября 2010

Не уверен, что такого особенного в iOS. Просто используйте тот же метод, который вы используете с 3.2: imageNamed: ... он позаботится обо всем, пока ваши изображения будут названы правильно (yourimagename.png и yourimagename@2x.png) Ничего особенного в iOS 4 SDK здесь нет, просто укажите размер, который вы используете в пунктах, как и раньше.

Если это не подходит в вашем случае, вы можете объяснить, почему?

2 голосов
/ 12 сентября 2010

Я пытаюсь отобразить изображение высокого разрешения на iPhone 4 без использования iOS 4 SDK (только с использованием вызовов API 3.2 SDK)

Уч. Не делай этого.

Скомпилируйте против 4.0, установите цель развертывания на 3.whither.

При создании изображения установите флажок [UIImage respondsToSelector:@selector(imageWithCGImage:scale:orientation:)]. Если это так, то вы можете использовать + [UIImage imageWithCGImage: scale: direction:] , чтобы создать изображение «scale 2», которое будет правильно отображаться в UIImageView на iPhone 4 (которое имеет «scale 2»). "экран).

Если вы действительно не можете использовать OS 4 SDK (кажется, вы не указали причину этого), уменьшите UIImageView, используя соответствующий режим содержимого (AspectFit / AspectFill / ScaleToFill), и установите для его кадра значение половина размера в пикселях (например, если изображение имеет размер 100x100 пикселей, установите для него значение (CGSize) {50,50}). Это уменьшает изображение до половины, но экран двойного разрешения означает, что вы видите его попиксельно.

1 голос
/ 12 сентября 2010

Я думаю, что ваш подход неверен.iPhone 4 работает с точками вместо пикселей, что удваивает размер.1 точка на старых устройствах равняется 4 пикселям на iPhone 4, но все еще используется как 1 точка.

Когда вы создаете кадр, вы фактически присваивает API не размеры пикселя, а размеры точки.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...