【问题标题】:Using bringSubviewToFront in Ipad scrollview在 Ipad 滚动视图中使用bringSubviewToFront
【发布时间】:2011-04-15 18:43:57
【问题描述】:

在我的 Ipad 应用程序中,我有一个拆分视图,其中详细视图是滚动视图... 我有 3 个滚动视图的子视图,它们是表格视图...... 执行操作时,如何使用- (void)bringSubviewToFront:(UIView *)view 将滚动视图的其中一个子视图置于最前面? (因为视图是按照它们添加的顺序“堆叠”的,最后一个在顶部)。代码应该写在subview还是detailViewController中,怎么调用?

【问题讨论】:

    标签: ipad uiscrollview uisplitviewcontroller


    【解决方案1】:

    您在控制器中编写代码。

    控制器应该可以通过IBOutlet 属性访问表视图。或者,如果您没有使用 nib 设置它们,那么控制器应该是创建它们的那个。

    例如,如果一个按钮点击负责显示特定的表格视图,则该按钮的操作处理程序方法就是您调用bringSubviewToFront: 方法的地方。

    但是:听起来您有三个相互重叠的表格视图,并且正在使用 bringSubviewToFront: 来显示当前的一个,并且它们都在 UIScrollView 内。

    1. 每个 UITableView 都包含一个 UIScrollView。不要将滚动视图放在滚动视图中,它们会为跟踪触摸而争吵,事情会变得很奇怪。只需将三个表格视图放在一个普通的 UIView 中即可。

    2. 您应该考虑隐藏非活动视图(调用setHidden:),而不是bringSubviewToFront:。这样,隐藏的视图将不会被视为响应者链的一部分(不会收到发送的事件)。

    【讨论】:

    • 感谢您的回复.. 我如何调用 setHidden: 到其他 2 个表视图?现在我执行的操作是在中间表(中间子视图)中选择一个单元格时.. 那么我在哪里写 setHidden: 隐藏其他 2 个表(其他 2 个子视图)?
    • 在不了解您的代码的情况下很难回答这个问题。但听起来您希望它发生在 did-select-cell 的表视图委托方法中。
    • 这里是我最初提出的问题的链接 - stackoverflow.com/questions/5668765/…。从那里,你能告诉我哪个是我的 tableview 代表吗?
    • 您告诉每个表格视图哪个对象是委托,它会在选择或需要创建单元格等事件时获取方法调用。
    • 无意冒犯,但也许你需要做一个更简单的项目来学习这些东西,然后再尝试解决听起来如此复杂的事情。
    猜你喜欢
    • 2013-12-14
    • 2012-11-22
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多