我正试图让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];
答案 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];