Подтвердить что ты не робот

IOS SDK UIViewContentModeScaleAspectFit против UIViewContentModeScaleAspectFill

У меня есть изображение, которое я хотел бы отображать в UITableViewCell, используя стиль UITableViewCellStyleSubtitle, который предоставляет UIImageView и две строки текста, а также дополнительный аксессуар.

Однако, когда я устанавливаю режим содержимого UIImageView как на UIViewContentModeScaleAspectFit, так и на UIViewContentModeScaleAspectFill, это не имеет никакого значения. Оба этих режима содержимого просто отображают все изображение, перемещая текст вправо, чтобы освободить место для изображения.

Есть ли у кого-нибудь примеры того, как они фактически различаются на практике? Документы говорят:

UIViewContentModeScaleAspectFit:
Scales the content to fit the size of the view by maintaining the aspect ratio. Any     remaining area of the view’s bounds is transparent.

UIViewContentModeScaleAspectFill:
Scales the content to fill the size of the view. Some portion of the content may be  clipped to fill the view’s bounds.

Но эти режимы содержимого, похоже, не ведут себя как рекламируемые.

EDIT: я запускаю SDK iOS 4.

4b9b3361

Ответ 1

Причина, по которой вы не видите разницы между этими режимами, заключается в том, что UITableViewCell автоматически определяет размер изображения для соответствия формату изображения. Режимы содержимого включаются только в том случае, если соотношение сторон изображения отличается от изображения.

Либо переопределите layoutSubviews в своем пользовательском классе UITableViewCell, либо создайте представление изображения самостоятельно (не используйте тот, который предоставляет ячейка представления таблицы).

Ответ 2

У меня была та же проблема. Похоже, документация Apple немного отсутствует.

Я нашел ответ, ища по интернету. http://www.iphonedevsdk.com/forum/iphone-sdk-development/2973-crop-image.html

В принципе,

img1.contentMode = UIViewContentModeScaleAspectFill; 
img1.clipsToBounds = YES;

Если вы хотите, чтобы это было немного больше, посмотрите этот пост: UIImageView измените ширину и высоту