Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在设备旋转时处理UIImage_Iphone - Fatal编程技术网

Iphone 如何在设备旋转时处理UIImage

Iphone 如何在设备旋转时处理UIImage,iphone,Iphone,我有一个UIScrollView,里面有一个UIImage。以下代码正确初始化图像,其宽度与scrollView的宽度相同: // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad { [super viewDidLoad]; ... imageView = [[UIImageView alloc]

我有一个UIScrollView,里面有一个UIImage。以下代码正确初始化图像,其宽度与scrollView的宽度相同:

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];

    ...

    imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"map1.jpg"]];
    imageView.userInteractionEnabled = YES;
    imageView.autoresizingMask = ( UIViewAutoresizingFlexibleWidth );
    [imageScrollView addSubview:imageView];

    imageScrollView.contentSize = [imageView frame].size;

    ...

    // calculate minimum scale to perfectly fit image width, and begin at that scale
    float minimumScale = [imageScrollView frame].size.width  / [imageView frame].size.width;
    //imageScrollView.maximumZoomScale = 1.0;
    imageScrollView.minimumZoomScale = minimumScale;
    imageScrollView.zoomScale = minimumScale;
}
我想做的是,当设备旋转时,将大小设置为如上所述的完美匹配。以下是我试图做的:

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
  float newScale = [imageScrollView frame].size.width  / [imageView frame].size.width;
  imageScrollView.zoomScale = newScale;
}

出于某些原因,这根本不起作用。我唯一能让它工作的方法是初始化另一个UIImage并再次执行所有初始化过程,我觉得这不对。

可能您也应该更改滚动视图的.contentSize。

很遗憾,它似乎无法工作。我认为问题出在UIImageView上,而不是UIScrollView上。好的,请描述一下旋转后你在屏幕上看到了什么,即UIImage的大小等等?图像的放大程度超过了需要,这是因为UIViewAutoresizingFlexibleWidth-图像在旋转后按比例调整了屏幕宽度。检查图像帧,并将其更改为开始时的值。感谢您的帮助Nickolay。不幸的是,我没能听从你的建议。我应该如何更改图像边框?