Как изменить размер UIImageView, чтобы соответствовать базовому изображению, не перемещая его? - PullRequest
8 голосов
/ 08 июня 2010

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

Как изменить размеркадр, поэтому он имеет тот же размер, что и базовое изображение, при этом гарантируя, что центральная точка UIImageView не изменится?

Ответы [ 2 ]

13 голосов
/ 08 июня 2010

Если вы измените границы UIView, центр не изменится.

CGRect bounds;

bounds.origin = CGPointZero;
bounds.size = newImage.size;

imageView.bounds = bounds;
imageView.image = newImage;
2 голосов
/ 08 июня 2010

попробуйте что-нибудь по следующему принципу .. не проверено

CGSize imageSize = image.Size;
CGPoint oldCenter = imageView.center;

// now do some calculations to calculate the new frame size
CGRect rect = CGRectMake(0, 0, imageSize.width, imageSize.height);
imageView.frame = rect;
imageView.center = oldCenter;
...