如何在屏幕上的特定位置显示UIImage?

时间:2013-11-14 23:23:15

标签: ios objective-c uiimageview uiimage

我正试图让UIImage显示在屏幕上的某个位置。我在下面的代码中尝试过initWithFrame,但它仍然显示在左上角。我该怎么做呢?

UIImage *headImage = [UIImage imageNamed:@"head"];
UIImageView *headView = [[[UIImageView alloc] initWithImage:headImage] initWithFrame:CGRectMake(200.0, 200.0, 400.0, 500.0)];
[self.view addSubview:headView];

4 个答案:

答案 0 :(得分:4)

执行以下操作:在之后设置框架创建图像视图

UIImage *headImage = [UIImage imageNamed:@"head"];
UIImageView *headView = [[UIImageView alloc] initWithImage:headImage];
headView.frame = CGRectMake(200.0, 200.0, 400.0, 500.0);
[self.view addSubview:headView];

干杯!

答案 1 :(得分:2)

您无法两次致电init。将您的代码更改为:

UIImage *headImage = [UIImage imageNamed:@"head"];
UIImageView *headView = [[[UIImageView alloc] initWithFrame:CGRectMake(200.0, 200.0, 400.0, 500.0)];
headView.image = headImage;
[self.view addSubview:headView];

答案 2 :(得分:1)

如果您希望图像视图具有特定大小,则其他答案非常好。但是,如果您希望图像视图的大小与图像的大小相匹配,并将图像视图放在特定位置,那么您应该这样做:

UIImage *headImage = [UIImage imageNamed:@"head"];
UIImageView *headView = [[[UIImageView alloc] initWithImage:headImage] 
CGRect frame = headView.bounds;
frame.origin.x = 200;
frame.origin.y = 400;
headView.frame = frame;
[self.view addSubview:headView];

即使您更改图像的大小,此代码也可以正常工作。

答案 3 :(得分:0)

如果您不需要更改图像尺寸,则可以使用setCenter方法在屏幕上移动图像。

UIImage *headImage = [UIImage imageNamed:@"head"];
UIImageView *headView = [[UIImageView alloc] initWithImage:headImage];
[headView setCenter:CGPointMake(100, 100)]; // x, y
[self.view addSubview:headView];