作为iOS编程的新手,我在UIPopoverController内部工作时对UIImageView和UIScrollView有些困惑。在这里他们是...嵌入在UIScrollView中的图像不会在UIPopoverController中显示
一个UIViewController,其视图指向其子视图是UIImageView的UIScrollView。在UIViewController初始化期间,UIImageView的image属性由另一个类设置。
-(void)loadView{
self.scrollView=[[UIScrollView alloc]init];
self.imageView=[[UIImageView alloc]init];
self.imageView.contentMode=UIViewContentModeScaleAspectFit;
[self.scrollView addSubview:self.imageView];
self.view=self.scrollView;
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
self.imageView.image=self.image;
self.scrollView.contentSize=self.imageView.image.size;
}
然后我把UIViewController作为UIPopoverController的contentViewController,然后在响应块中弹出。
cell.actionBlock=^{
NSLog(@"Going to show image for %@", item);
BNRItemCell* strongCell=weakCell;
if([UIDevice currentDevice].userInterfaceIdiom==UIUserInterfaceIdiomPad){
NSString* itemKey=item.itemKey;
UIImage* img=[[BNRImageStore sharedStore]imageForKey:itemKey];
if(!img){
return;
}
CGRect rect=[self.view convertRect:strongCell.thumbnailView.bounds fromView:strongCell.thumbnailView];
BNRImageViewController* ivc=[[BNRImageViewController alloc]init];
ivc.image=img;
self.imagePopover=[[UIPopoverController alloc]initWithContentViewController:ivc];
self.imagePopover.delegate=self;
self.imagePopover.popoverContentSize=CGSizeMake(600,600);
[self.imagePopover presentPopoverFromRect:rect inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
}
};
当块运行弹出一个窗口显示了,但没有图像显示,我确信图像的设置正确的UIScrollView的contentSize也被设置为图像大小。
当我直接将UIViewController的视图更改为UIImageView时,图像显示。我不确定发生了什么,为什么滚动视图中的图像不可见。
另外,我可以看到滚动视图是内弹出动过程中,建立了具有水平和垂直滚动条显示窗口。 –