有没有一种方法可以计算/检测PopOverController是否位于View顶部?如果是这样,让它显示allowedArrowDirections:UIPopoverArrowDirectionDown vs allowedArrowDirections:UIPopoverArrowDirectionUp取决于如果你在视图的底部或顶部,或者如果有足够的空间来显示popOverControl没有调整大小?替代方法我正在考虑滚动视图向下或向上如果没有足够的空间,但我想利用allowedArrowDirections:UIPopoverArrowDirectionDown和allowedArrowDirections:UIPopoverArrowDirectionUp。有什么建议么?PopOverController在视图顶部调整大小
回答
您不应该计算popover控制器放置视图的位置。 popover控制器旨在让您指定箭头指向的位置,以及将弹出窗口添加到的视图。然后popover控制器会计算它有空间显示其弹窗视图的位置。
但是,如果您可以通过指定一个或多个UIPopoverArrowDirection
来限制popover控制器放置弹出视图的位置。例如,假设您有一个较大的视图(视图A),并且视图A左侧有一个较小的子视图(视图B)。如果要显示位于视图B右侧的按钮视图的弹出窗口,当你出现了,你可以告诉酥料饼的控制器仅能显示中显示其酥料饼的视图按钮的边框的右侧,像这样:
[popoverController presentPopoverFromRect: buttonView.frame
inView: viewA
permittedArrowDirections: UIPopoverArrowDirectionLeft
animated: YES];
编辑
灿您将在包含表视图的视图的坐标空间中获取文本字段的框架?
CGRect frame = [tableView.superview convertRect: textField.frame fromView: textField.superview];
[popoverController presentPopoverFromRect: frame
inView: tableView.superview
permittedArrowDirections: UIPopoverArrowDirectionLeft
animated: YES];
假设tableView的超级视图足够大以满足您的需求,这应该适应弹出窗口的显示。
在当前的项目我工作我有PopOver在UITableviewCell里面的UITextField顶部显示。如果Im在UItableviewCell的顶部,则UIPopOverControl调整为较小的大小,从而防止项目可见。我必须在位于顶部或在UITextField – wilforeal 2013-04-11 16:40:44
@wilforeal我已根据您最后的评论编辑我的答案。 – 2013-04-11 20:47:14
拿到后,你得到的X和Y点,你可以计算出可用空间打开您的PopOverController在你的触摸从
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
CGPoint touchPoint = [touch locationInView:myView];
NSLog("%lf %lf", touchPoint.x, touchPoint.y);
}
协调。
请让我知道如果您需要进一步的帮助
- 1. 调整窗口视图的大小应调整大小
- 2. 在iPhone 5调整表视图大小
- 3. 调整顶部横幅图像大小的最佳方式(视口/ html)
- 4. 调整子视图的大小并调整大小/窗口大小
- 5. 如何根据图像大小调整图像视图大小?
- 6. ExtJS 4 - 调整大小后调整大小后调整大小的内部组件不会调整大小resizeHandles
- 7. tableview不会在父视图调整后调整大小
- 8. 自动调整大小和粘(顶部和底部)div jQuery
- 9. Jquery UI Draggable:div不在顶部和左侧调整大小
- 10. 视差图像大小调整问题
- 11. 点击按钮,调整视图大小
- 12. TableView调整父视图的大小iOS
- 13. 嵌入视图并调整其大小
- 14. 调整大小后排列视图
- 15. Cocoa-Touch:动态调整视图大小
- 16. Android调整大小视图不平滑
- 17. 使用scrollViewDidScroll调整视图的大小
- 18. Android视频和图像调整大小
- 19. UIView子视图不调整大小
- 20. 调整基本视图大小ios
- 21. 调整大小模态的视图
- 22. 从cvShowImage调整视图的大小
- 23. UIView子视图自动调整大小
- 24. uitabbarController视图不调整大小
- 25. Cocoa Autolayout和子视图调整大小
- 26. 动态列表视图调整大小
- 27. UISplitViewController - 调整细节视图的大小
- 28. MPMoviePlayerController视图不调整大小
- 29. 调整UITabBarController子视图的大小
- 30. TouchListView调整大小视图后降(CommonsWare)
你必须检查你的触摸点的Y位置。根据 – Hiren 2013-04-11 16:01:52
计算房间并显示,那么视图绝对顶部的坐标是什么?我必须获得UIWindow的Y坐标吗?或者是最容易的0? – wilforeal 2013-04-11 19:31:56
你可以通过触摸事件来检查 – Hiren 2013-04-12 04:45:49