iOS SDK UIViewContentModeScaleAspectFit против UIViewContentModeScaleAspectFill - PullRequest
16 голосов
/ 06 июля 2010

У меня есть изображение, которое я хотел бы отобразить в 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.

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

РЕДАКТИРОВАТЬ: я использую SDK iOS 4.

Ответы [ 2 ]

35 голосов
/ 31 мая 2011

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

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

В основном

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

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

9 голосов
/ 06 декабря 2011

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

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

...