我使用 UIPageViewController,我的每个视图在 UIScrollView 中都有一个 UIImageView。我想在方向改变时更改UIImageView的图像。我可以控制更改事件并更改图像,但它不会更改当前视图图像,它会在当前视图之前更改视图。这是设置图像并将其加载到 UIImageView 的第一种方法。
-(void)loadImageToImageView{
UIImage *image =[UIImage imageNamed:self.imageName];
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:image];
[self.scrollView setFrame:CGRectMake(0, 0, self.view.frame.size.width , self.view.frame.size.height)];
[self.scrollView setBackgroundColor:[UIColor blackColor]];
[tempImageView setFrame:CGRectMake(0, 0, self.view.frame.size.width , self.view.frame.size.height)];
tempImageView.backgroundColor = [UIColor blackColor];
self.imageView = tempImageView;
[self.imageView setContentMode:UIViewContentModeScaleAspectFit];
self.scrollView.minimumZoomScale = 1;
self.scrollView.maximumZoomScale = 4.0;
self.scrollView.delegate = self;
self.scrollView.zoomScale = 1;
[self.scrollView addSubview:self.imageView];
self.scrollView.bounces = NO;
}
此方法在方向改变时触发。
-(void)changeImage{
UIImage *image =[UIImage imageNamed:self.landscapeImage];
[self.imageView setImage:image];
}
在下面的UIPageViewControllerDelegate
方法中更改图像名称
-(UIViewController *)viewControllerAtIndex:(NSInteger)index {
PageViewController *childViewController = [[ZoomContainerViewController alloc] initWithNibName:@"ZoomContainerViewController" bundle:nil]; //load the xib file
childViewController.imageName = requiredImageString;
return childViewController;
}
然后在 PageViewController
类 viewdidload()
方法中将该图像名称的图像设置为:
self.backgroundImageView.image = [UIImage imageNamed:self.imageName];