-1

我试图让 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

4 回答 4

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];

干杯!

于 2013-11-14T23:29:34.450 回答
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];
于 2013-11-14T23:29:47.007 回答
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];

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

于 2013-11-14T23:34:31.077 回答
0

如果您不需要更改图像大小,那么您可以使用简单setCenter的方法在屏幕上移动图像。

UIImage *headImage = [UIImage imageNamed:@"head"];
UIImageView *headView = [[UIImageView alloc] initWithImage:headImage];
[headView setCenter:CGPointMake(100, 100)]; // x, y
[self.view addSubview:headView];
于 2013-11-14T23:37:52.680 回答