我遇到一个问题,我无法找到标题错误。而且我已经多次搜索过类似或相关的问题,这些问题无法解决。
我正在构建一个可以使用按钮更改A UIImageView
的图像的应用程序。一切都很好,直到我使用另一个按钮来改变imageView的大小(使用UIView animateWithDuration + CGAffineTransformMakeRotation
),然后使用该按钮更改图像。
奇怪的输出没有错误发生!图像视图大小改变回来,位置移动到其他地方。
抱歉我的英语很差。
带图形,
animateWithDuration + CGAffineTransformMakeRotation
更改尺寸&方向,使视图全屏像[尺寸更改视图] [2] imageView.image = newImage(UIImage)
但是,如果我在步骤1更改图像没有任何内容(没有方向和设置框架)
请帮忙,我找不到错误,因为只有一个地方可以改变视图的大小和方向。
我想知道UIImage
会影响UIImageView
。但我找不到答案。
(照片在下方)
这是旋转图像的代码 如果已经设置了图像,旋转后图像也很好 但是问题在旋转后得到,然后将新图像设置为图像视图
-(void)transformToDirection:(NSInteger)dir
{
rotation = M_PI_2;
CGFloat screenW = [[UIScreen mainScreen] bounds].size.width;
CGFloat screenH = [[UIScreen mainScreen] bounds].size.height;
CGRect portraitFrame = _imageVIew.frame;
CGRect landscapeFrame = CGRectMake(0, 0, screenW, screenH);
switch (dir) {
case UIInterfaceOrientationPortrait:
{
[UIView animateWithDuration:1 delay:0 options:0 animations:^{
_imageVIew.transform = CGAffineTransformMakeRotation(3/4 * rotation);
[_imageVIew setFrame:portraitFrame];
}completion:^(BOOL finished){
isFullScreen = false;
}];
}
break;
case UIInterfaceOrientationLandscapeRight:
{
[UIView animateWithDuration:1 delay:0 options:0 animations:^{
_imageVIew.transform = CGAffineTransformMakeRotation(rotation);
[_imageVIew setFrame:landscapeFrame];
}completion:^(BOOL finished){
isFullScreen = true;
}];
}
break;
case UIInterfaceOrientationLandscapeLeft:
{
[UIView animateWithDuration:TIME_ANIMATE_FULLSCREEN delay:0 options:0 animations:^{
_imageVIew.transform = CGAffineTransformMakeRotation(-rotation);
[_imageVIew setFrame:landscapeFrame];
}completion:^(BOOL finished){
isFullScreen = true;
}];
}
break;
default:
break;
}
}
这是图像视图集图像(所有新图像大小相同),由按钮调用。
dispatch_async(dispatch_get_main_queue(), ^{
if (loadedimage) {
self.imageVIew.image = loadedimage;
} else {
self.PBMainImageVIew.image = nil;
dlog(@"request image failed");
}
});