有谁知道如何获得UIImageView的“真实”大小而不是创建一个框架

时间:2009-09-23 12:58:37

标签: objective-c uiimageview

我希望有某种功能可以拍摄我照片的实际尺寸

CGRect myImageRect = CGRectMake(0.0f, 0.0f, 320.0, 210.0f);  // 234
            UIImageView *myImage = [[UIImageView alloc] initWithFrame:myImageRect];

            [myImage setImage:[UIImage imageNamed:@"start.png"]];

用CGRectMake做这样的事情..(imageViewHeight,

CGFloat imageViewHeight = [myImage frame] .size.height;

这样我就可以获得真正的大小,而不必像上面所见那样定义它。

3 个答案:

答案 0 :(得分:1)

我真的没有得到你所要求的,但这是一个镜头:

如果您有UIImage,并且想知道它的大小,可以询问它的-[UIImage size]属性。

但是,如果你想创建一个与UIImage大小相同的UIImageView,那么你可以使用-[UIImageView initWithImage:],它会自动设置UIImageView的框架以对应于图像的尺寸。 / p>

但是,如果您只想更改当前现有视图的尺寸,那么在没有弄乱视图frame的情况下,实际上没有简单的方法可以做到这一点。您可以应用仿射变换来缩放它,但操作帧更容易。

答案 1 :(得分:1)

看起来你要求在没有先创建框架的情况下将图像添加到imageview。如果是这种情况,您可以执行以下操作:

UIImageView *myImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"start.png"]];

答案 2 :(得分:0)

据我所知,您正在寻找UIImageView对象中使用的图像的大小。要做到这一点, UIImageView 中没有内置功能,但你可以这样做:

NSString* image= [myImage image].accessibilityIdentifier; // Get the image's name
UIImage *img = [UIImage imageNamed:image]; // Create an image object with that name
CGSize size = img.size; // Get the size of image

希望这有助于你的问题。