ImageView contentMode для правильного масштабирования изображений? - PullRequest
0 голосов
/ 26 января 2012

Я рисую кучу UIImageView (100x100) в качестве пунктов меню.У каждого свое изображение, некоторые больше 100х100, некоторые меньше.По умолчанию изображения imageViews с большими изображениями уменьшаются в пропорции, чтобы соответствовать размеру поля 100x100.

Однако изображения, размер которых меньше 100x100, масштабируются, что делает их действительно размытыми.Мне бы хотелось, чтобы меньшие изображения просто оставались такими же, как они есть.В противном случае я доволен тем, как масштабируются большие изображения, а не меньшими.

Я не смог ничего достичь, переключившись на UIViewContentModeScaleAspectFit, UIViewContentModeScaleAspectFill или UIViewContentModeScaleToFill.

У кого-нибудь есть идеи или взломы, как мне этого добиться?Я мог бы использовать оператор if, чтобы проверить размеры изображения и отправить их contentMode (Center?), Но это выглядит немного странно, поскольку я рисую каждый элемент из NSDictionary с циклом for in.Любая помощь приветствуется.Спасибо

1 Ответ

4 голосов
/ 26 января 2012

Если я правильно понимаю, вы можете просто проверить размеры изображения перед установкой рамки, например:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageName:@"myimage.png"]];
[imageView sizeToFit];

CGRect newFrame = imageView.frame;
if (newFrame.size.width > 100) newFrame.size.width = 100;
imageView.frame = newFrame;

Вам понадобится дополнительная логика, чтобы сделать аналогичные вещи для высоты.Это то, что вы имеете в виду?

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