我有一个应用程序,其中显示图像。我在UIImageView
显示了不同尺寸的各种图像。
我想要做的是设置图像视图的大小 - 称之为100x100。
有没有办法在普通的UIImageView中执行此操作?我需要在某个地方做一些魔法吗?
答案 0 :(得分:2)
您可以使用普通的UIImage视图执行此操作。对于较大的图像,您需要将图像视图的IB模式设置为宽高比适合或缩放至填充(取决于您是否希望宽高比保持不变),对于较小的图像,将其设置为中心。
您可以使用imageView的contentMode属性在代码中执行相同的操作。
答案 1 :(得分:1)
如果图像较小,则将UIImageView添加到新的透明视图中,并将其置于该视图中。如果更大,则决定如何调整视图大小(查看UIView中的resize选项),并使用该UIImageView。
答案 2 :(得分:1)
This answer最终帮助了我。它有这个代码:
- (CGSize) aspectScaledImageSizeForImageView:(UIImageView *)iv image:(UIImage *)im {
float x,y;
float a,b;
x = iv.frame.size.width;
y = iv.frame.size.height;
a = im.size.width;
b = im.size.height;
if ( x == a && y == b ) { // image fits exactly, no scaling required
// return iv.frame.size;
}
else if ( x > a && y > b ) { // image fits completely within the imageview frame
if ( x-a > y-b ) { // image height is limiting factor, scale by height
a = y/b * a;
b = y;
} else {
b = x/a * b; // image width is limiting factor, scale by width
a = x;
}
}
else if ( x < a && y < b ) { // image is wider and taller than image view
if ( a - x > b - y ) { // height is limiting factor, scale by height
a = y/b * a;
b = y;
} else { // width is limiting factor, scale by width
b = x/a * b;
a = x;
}
}
else if ( x < a && y > b ) { // image is wider than view, scale by width
b = x/a * b;
a = x;
}
else if ( x > a && y < b ) { // image is taller than view, scale by height
a = y/b * a;
b = y;
}
else if ( x == a ) {
a = y/b * a;
b = y;
} else if ( y == b ) {
b = x/a * b;
a = x;
}
return CGSizeMake(a,b);
}