该方法似乎是在视图中放置一个虚拟popoverAnchorbutton(隐藏,禁用),从它创建一个segue到故事板中的d出视图,将它放在dIDSelectItemAtIndexPath中,然后[self performSegue].代码如下所示:
- (IBAction)collectionVIEw:(UICollectionVIEw *)collectionVIEw dIDSelectItemAtIndexPath:(NSIndexPath *)indexPath [self.collectionVIEw deselectItemAtIndexPath:indexPath animated:NO]; UICollectionVIEwCell *cell = [self.collectionVIEw cellForItemAtIndexPath:indexPath]; CGRect anchorRect = CGRectMake(cell.center.x,cell.center.y,1.0f,1.0f); self.popoverAnchorbutton.frame = anchorRect; [self performSegueWithIDentifIEr:@"popoverSegue" sender:self];}
这在应用程序的其他位置在表视图中工作,因为故事板允许我在视图中删除按钮,以用作锚点.但Xcode不允许我将一个按钮或任何其他合适的视图放入故事板中的集合视图中,因此我无法创建segue.以编程方式创建按钮没有任何帮助,因为我无法从中构建UIStoryboardSegue,并且来自控制器的任何手动segue都会给出缺少锚点的相同错误.有任何想法吗?
我认为另一条路径可能是跳过segues并以编程方式实例化popover视图控制器,但这里的包版是一个错误源于我创建的d出视图(因为我使用的是故事板)没有xib.我是否必须为此d出窗口视图创建单独的xib文件?这是唯一的选择吗?
解决方法 如果您有兴趣在集合视图中获取当前所选单元格的CGRect,则可以使用:CGRect rect = [collectionVIEw layoutAttributesForItemAtIndexPath:indexPath].frame;
之后,您可以使用presentPopoverFromrect:inVIEw:allowedArrowDirections:animated:UIPopoverController,从该rect显示您的popover.
是的,如果它具有与之关联的故事板标识符,您始终可以从故事板中动态加载VC:
UIStoryboard* storyboard = [UIStoryboard storyboarDWithname:@"YourStoryboardname" bundle:nil];UIVIEwController* vc = [storyboard instantiateVIEwControllerWithIDentifIEr:@"YourIDentifIEr"];
如果您从故事板本身加载的VC中调用代码,则可以使用:
UIVIEwController* vc = [self.storyboard instantiateVIEwControllerWithIDentifIEr:@"YourIDentifIEr"];
快乐的编码!
总结以上是内存溢出为你收集整理的如何在IOS中从UICollectionViewCell初始化popover视图全部内容,希望文章能够帮你解决如何在IOS中从UICollectionViewCell初始化popover视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)