2010-06-08 20 views
7

Tôi có UIImageView có khung, được đặt trước khi hình ảnh được tải, luôn luôn quá lớn đối với hình ảnh, vì vậy khi tôi cố gắng làm tròn các góc, chẳng hạn, không có gì xảy ra.Làm cách nào để thay đổi kích thước UIImageView để vừa với hình ảnh cơ bản mà không cần di chuyển?

Làm cách nào để thay đổi kích thước khung hình sao cho nó có cùng kích thước với hình ảnh cơ bản, đồng thời đảm bảo rằng điểm trung tâm của UIImageView không thay đổi?

Trả lời

12

Nếu bạn thay đổi các giới hạn của một UIView trung tâm sẽ không thay đổi.

CGRect bounds; 

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

imageView.bounds = bounds; 
imageView.image = newImage; 
+0

Tôi sẽ cố gắng tối nay - rất có ý nghĩa khi nhìn vào nó. –

+1

Không hoạt động ít nhất trong iOS 9+, Xcode 7+. –

+0

Đồng ý với @Ezekiel ... nó không hoạt động trên iOS 9 –

2

thử một cái gì đó dọc theo dòng sau .. không được kiểm tra

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; 
Các vấn đề liên quan