我希望检测图像的宽度和高度,并将这些尺寸传递到以下代码中:
UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(25, 5, imgView.size.width, imgView.size.width)];
我的语法有问题,或者这是错误的方法。任何帮助都会很棒, 感谢
答案 0 :(得分:2)
执行:
UIImage *someImage = [UIImage imageNamed:@"someImage.png"];
UIImageView *someImageView = [[UIImageView alloc] initWithImage:someImage];
someImageView.frame = CGRectMake(0, 0, someImage.size.width, someImage.size.height);
答案 1 :(得分:1)
试试这个
UIImage *image = [UIImage imageNamed:@"image.png"];
UIImageView *imgView = [[UIImageView alloc] initWithImage:image];
imgView.frame = CGRectMake(0, 0, image.size.width, image.size.height);
希望它可以帮到你
答案 2 :(得分:1)
您可以从UIImage
size
属性中获取图像的大小。也许是这样的:
UIImage *img = [UIImage imageNamed:@"image.png"];
UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(25, 5, img.size.width, img.size.width)];
或者你可以:
UIImageView *imgView=[[UIImageView alloc] initWithImage:img];
它会自动调整大小。
答案 3 :(得分:0)
我怀疑图像视图没有宽度或高度,因为您刚刚分配并初始化它。 initWithFrame初始化方法需要一个浮点值,因此您无法查询imgView以返回宽度和高度的值,但尚未确定。
我通常会使用初始化程序initWithImage。然后在初始化后修改imageview的宽度和高度。
答案 4 :(得分:0)
如果您想设置最大宽度或高度,请尝试使用此代码。它将控制大小,您可以动态设置图像视图的帧。
CGSize size = image.size;
// Here Maximum width of image is 220
if (size.width > 220)
{
size.height /= (size.width / 220);
size.width = 220;
}
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, size.width, size.height)];
imageView.image = image;
// For layer mask or round corner
imageView.layer.cornerRadius = 5.0;
imageView.layer.masksToBounds = YES;