Tôi đang cố gắng vẽ một số hình ảnh thu nhỏ ở kích thước cố định (100x100) bằng cách sử dụng UIImageView
. Tôi đã thiết lập kích thước khung xem hình ảnh của tôi là 100x100, và thiết lập contentMode
để UIViewContentModeScaleAspectFill
.
Tôi hiểu rằng điều này sẽ khiến hình ảnh được vẽ ở kích thước tôi đặt và hình ảnh sẽ lấp đầy khu vực của hình ảnh và cắt bất kỳ phần nào của hình ảnh nằm ngoài kích thước tôi đặt cho chế độ xem hình ảnh. Tuy nhiên, hình ảnh vẫn được vẽ lớn hơn hoặc nhỏ hơn kích thước 100x100 mà tôi đặt cho nó.
Nếu tôi đặt contentMode
để UIviewContentModeScaleToFill
, sau đó hình ảnh được vẽ tại chính xác 100x100, nhưng nó bị bóp méo để phù hợp với những kích thước. Bất kỳ ý tưởng tại sao điền vào khía cạnh không cắt như mong đợi?
Đây là mã của tôi:
_photoView = [[UIImageView alloc] initWithImage:photoImage];
_photoView.contentMode = UIViewContentModeScaleAspectFill;
[self addSubview:_photoView];
CGRect photoFrame = _photoView.frame;
photoFrame.size = CGSizeMake(100, 100);
_photoView.frame = photoFrame;
Để minh họa rõ hơn, đây là một ảnh chụp màn hình những gì tôi đang thấy. Các hình vuông màu xanh lá cây UIView
chứa cái UIImageView
tôi đang làm việc. Tôi đã đặt màu nền của chúng thành màu xanh lá cây và khung hình của chế độ xem thành 100x100. Như một thử nghiệm, UIImageViews
kích thước đến 50x50. Như bạn có thể thấy, khi sử dụng ...AspectFill
, hình ảnh không có kích thước tới 50x50 và trong một số trường hợp được bù từ nơi tôi muốn. Khi sử dụng ...ScaleToFill
, chúng có kích thước chính xác, nhưng hình ảnh bị biến dạng.