0

我正在寻找检测图像的宽度和高度并将这些尺寸传递到以下代码中:

   UIImageView *imgView=[[UIImageView alloc] initWithFrame:CGRectMake(25, 5, imgView.size.width, imgView.size.width)];

要么是我的语法有问题,要么是这样做的错误方法。任何帮助都会很棒,谢谢

4

5 回答 5

2

做:

UIImage *someImage = [UIImage imageNamed:@"someImage.png"];
UIImageView *someImageView = [[UIImageView alloc] initWithImage:someImage];
someImageView.frame = CGRectMake(0, 0, someImage.size.width, someImage.size.height);
于 2013-01-07T11:22:08.860 回答
1

试试这个

UIImage *image = [UIImage imageNamed:@"image.png"];
UIImageView *imgView = [[UIImageView alloc] initWithImage:image];
imgView.frame = CGRectMake(0, 0, image.size.width, image.size.height);

希望对你有帮助

于 2013-01-07T11:24:06.820 回答
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];

它会自动调整大小。

于 2013-01-07T11:24:37.467 回答
0

我怀疑图像视图没有宽度或高度,因为您刚刚分配并初始化了它。initWithFrame 初始化方法需要一个浮点值,因此您无法查询 imgView 以返回宽度和高度的值,因为它尚未确定。

我通常会使用初始化程序 initWithImage。然后在初始化后修改imageview的宽高。

于 2013-01-07T11:26:48.473 回答
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;
于 2013-01-07T11:34:17.603 回答