Ios 当图像';s帧改变大小

Ios 当图像';s帧改变大小,ios,objective-c,uiimageview,Ios,Objective C,Uiimageview,我目前正在使用这个示例代码生成一个ImageView,它下面有一个按钮,按下按钮时会生成一个日志 - (void)loadView { [super loadView]; imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SteveJobsMacbookAir.JPG"]]; [imageView setFrame:CGRectMake(80.0, 20.0, 160.0, 230.0)]; [imageV

我目前正在使用这个示例代码生成一个ImageView,它下面有一个按钮,按下按钮时会生成一个日志

- (void)loadView {
[super loadView];

imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SteveJobsMacbookAir.JPG"]];
[imageView setFrame:CGRectMake(80.0, 20.0, 160.0, 230.0)];
[imageView setContentMode:UIViewContentModeScaleAspectFit];

[[self view] addSubview:imageView];

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(cropImage) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(124.0, 258.0, 72.0, 37.0)];
[button setTitle:@"Crop!" forState:UIControlStateNormal];

[[self view] addSubview:button];
}  
当我按下“裁剪!”按钮时,上面图像的大小会改变:

- (void)cropImage {
[imageView setFrame:CGRectMake(80.0, 20.0, 160.0, 230.0)];
}  

但是,按钮保持在同一位置,而不是位于图像下方。如何调整图像边框的大小,同时使按钮再次移动到其正下方?

只需将按钮的y位置指定给相对于imageView y位置的变量即可。 试试这个

+20用于在imageView和按钮之间留出一些空间。 希望这有帮助:)

使用以下代码

- (void)loadView {
[super loadView];

imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SteveJobsMacbookAir.JPG"]];
[imageView setFrame:CGRectMake(80.0, 20.0, 160.0, 230.0)];
[imageView setContentMode:UIViewContentModeScaleAspectFit];

[[self view] addSubview:imageView];

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
//Change bellow line
[button addTarget:self action:@selector(cropImage:) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(124.0, 258.0, 72.0, 37.0)];
[button setTitle:@"Crop!" forState:UIControlStateNormal];

[[self view] addSubview:button];
}  
//Change to this function
- (void)cropImage:(UIButton *)sender {
[imageView setFrame:CGRectMake(80.0, 20.0, 160.0, 230.0)];
sender.center = CGPointMake(sender.center.x,imageView.center.y);
}  

完美的对于将来阅读本文的任何人,只要在每次调整上述图像的大小以及更新按钮相对于它的位置时使用这行代码即可。非常感谢,迪佩什!:)作为一个合适的程序员,请使用并遵循Autolayout来实现上述目标。设置按钮和图像视图的垂直距离及其下方。
- (void)loadView {
[super loadView];

imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"SteveJobsMacbookAir.JPG"]];
[imageView setFrame:CGRectMake(80.0, 20.0, 160.0, 230.0)];
[imageView setContentMode:UIViewContentModeScaleAspectFit];

[[self view] addSubview:imageView];

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
//Change bellow line
[button addTarget:self action:@selector(cropImage:) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(124.0, 258.0, 72.0, 37.0)];
[button setTitle:@"Crop!" forState:UIControlStateNormal];

[[self view] addSubview:button];
}  
//Change to this function
- (void)cropImage:(UIButton *)sender {
[imageView setFrame:CGRectMake(80.0, 20.0, 160.0, 230.0)];
sender.center = CGPointMake(sender.center.x,imageView.center.y);
}