【发布时间】:2016-05-30 23:08:03
【问题描述】:
作为 iOS 编程的新手,在 UIPopoverController 中工作时,我对 UIImageView 和 UIScrollView 有点困惑。他们来了……
一个 UIViewController,它的视图指向一个 UIScrollView,它的子视图是一个 UIImageView。 UIImageView 的 image 属性是在 UIViewController 初始化期间由另一个类设置的。
-(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 时,图像会显示。我不确定会发生什么以及为什么滚动视图中的图像不可见。
【问题讨论】:
-
另外,我可以看到滚动视图设置为在弹出窗口内滑动期间显示水平和垂直滚动条。
标签: ios objective-c uipopovercontroller