Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.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
在iOS集合视图中的单元格顶部显示菜单控制器_Ios_Objective C_Ios7_Uicollectionview - Fatal编程技术网

在iOS集合视图中的单元格顶部显示菜单控制器

在iOS集合视图中的单元格顶部显示菜单控制器,ios,objective-c,ios7,uicollectionview,Ios,Objective C,Ios7,Uicollectionview,我想在用户长按集合视图中嵌入在容器视图中的单元格时,显示一个带有自定义操作的UIMenuController 我已经实现了这个栈溢出解决方案中提到的,它工作得很好 我现在遇到的问题是,菜单项出现在单元格下方,即使我将箭头方向保持为UIMenuControllerArrowDown “我的集合”视图是视图控制器内的容器视图的一部分。当我在“收藏”视图中按图像时,它会显示单元格底部的菜单项。如何在顶部显示它 我试图在下面的特定视图中显示它,但我的努力没有用 [menu setTargetRect:

我想在用户长按集合视图中嵌入在容器视图中的单元格时,显示一个带有自定义操作的UIMenuController

我已经实现了这个栈溢出解决方案中提到的,它工作得很好

我现在遇到的问题是,菜单项出现在单元格下方,即使我将箭头方向保持为UIMenuControllerArrowDown

“我的集合”视图是视图控制器内的容器视图的一部分。当我在“收藏”视图中按图像时,它会显示单元格底部的菜单项。如何在顶部显示它

我试图在下面的特定视图中显示它,但我的努力没有用

[menu setTargetRect:cell.bounds inView:parentControllerView];

有人能建议我如何解决这个问题吗?如果我的问题不清楚或需要更多详细信息,请告诉我。

当您尝试在视图上方显示菜单时,问题会出现,这将导致菜单显示在导航栏上方。iOS不想将其显示在导航栏上方,而是将其向下推。如果您的项目在屏幕上较低,它将正确地显示在视图上方,并按预期指向它。可能值得在bugreport.apple.com上提交一份bug报告,要求菜单出现在导航栏上方

此外,最好将单元格的边界用作目标矩形,将视图的单元格用作父控制器的视图,如下所示:

[菜单设置targetect:cell.bounds查看:单元格]

现在,我找到了一个解决办法,可以强制菜单显示在导航栏上。与其提供单元格的边界作为目标矩形,不如自己向下推一点。出于某种原因,这样做可以防止iOS在它出现在导航栏上时将其向下推


[菜单setTargetRect:CGRectMake(0,10,cell.bounds.width,cell.bounds.height-10)查看:单元格]

您的菜单显示单元格的底部,因为您已将单元格的父视图设置为“显示”菜单,父视图的高度无法显示单元格下方的菜单,因此它显示的是与单元格重叠的菜单。 因此,如果您想在单元格下方显示菜单,而不是不显示,则必须更改显示菜单的视图。设置

[menu setTargetRect:cell.bounds inView:[UIApplication sharedApplication] window];
这将在应用程序的主窗口中显示您的菜单