在 Ipad 滚动视图中使用bringSubviewToFront
Posted
技术标签:
【中文标题】在 Ipad 滚动视图中使用bringSubviewToFront【英文标题】:Using bringSubviewToFront in Ipad scrollview 【发布时间】:2011-04-15 18:43:57 【问题描述】:在我的 Ipad 应用程序中,我有一个拆分视图,其中详细视图是滚动视图...
我有 3 个滚动视图的子视图,它们是表格视图......
执行操作时,如何使用- (void)bringSubviewToFront:(UIView *)view
将滚动视图的其中一个子视图置于最前面? (因为视图是按照它们添加的顺序“堆叠”的,最后一个在顶部)。代码应该写在subview还是detailViewController中,怎么调用?
【问题讨论】:
【参考方案1】:您在控制器中编写代码。
控制器应该可以通过IBOutlet
属性访问表视图。或者,如果您没有使用 nib 设置它们,那么控制器应该是创建它们的那个。
例如,如果一个按钮点击负责显示特定的表格视图,则该按钮的操作处理程序方法就是您调用bringSubviewToFront:
方法的地方。
但是:听起来您有三个相互重叠的表格视图,并且正在使用 bringSubviewToFront:
来显示当前的一个,并且它们都在 UIScrollView 内。
每个 UITableView 都包含一个 UIScrollView。不要将滚动视图放在滚动视图中,它们会为跟踪触摸而争吵,事情会变得很奇怪。只需将三个表格视图放在一个普通的 UIView 中即可。
您应该考虑隐藏非活动视图(调用setHidden:
),而不是bringSubviewToFront:。这样,隐藏的视图将不会被视为响应者链的一部分(不会收到发送的事件)。
【讨论】:
感谢您的回复.. 我如何调用 setHidden: 到其他 2 个表视图?现在我执行的操作是在中间表(中间子视图)中选择一个单元格时.. 那么我在哪里写 setHidden: 隐藏其他 2 个表(其他 2 个子视图)? 在不了解您的代码的情况下很难回答这个问题。但听起来您希望它发生在 did-select-cell 的表视图委托方法中。 这里是我最初提出的问题的链接 - ***.com/questions/5668765/…。从那里,你能告诉我哪个是我的 tableview 代表吗? 您告诉每个表格视图哪个对象是委托,它会在选择或需要创建单元格等事件时获取方法调用。 无意冒犯,但也许你需要做一个更简单的项目来学习这些东西,然后再尝试解决听起来如此复杂的事情。以上是关于在 Ipad 滚动视图中使用bringSubviewToFront的主要内容,如果未能解决你的问题,请参考以下文章
在 iPad 上具有多个可查看页面的 UIPageControl