【问题标题】:Send subview to back将子视图发送到后面
【发布时间】:2012-02-13 09:42:45
【问题描述】:

我正在尝试模仿 facebook ios 侧边菜单并使其正常工作,但是我遇到的问题是我无法将侧边菜单发送到后面,如 SO iphone facebook side menu using objective c 上的另一个问题中所述。我没有使用建议的库,而是使用建议的代码。我有

- (void)viewDidLoad
{
    NSLog(@"View Did Load is running");
    activitySpinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
    activitySpinner.frame = CGRectMake(0.0, 0.0, 40.0, 40.0);
    activitySpinner.center = self.view.center;
    [self.view addSubview:activitySpinner];

    SideMenuView *myDelegate = [[SideMenuView alloc] init];
    [self setSideMenuDelegate:myDelegate];
    //set the delegate's currentViewController property so that we can add a subview to this View. 
    [sideMenuDelegate setCurrentViewController:self];

    //sideMenu = [[SideMenuView alloc] initWithNibName:@"SideMenuView" bundle:nil];
    [self.view addSubview:myDelegate.view];
    [self.view sendSubviewToBack:myDelegate.view];

    [super viewDidLoad];
    self.searchDisplayController.searchBar.scopeButtonTitles = nil;

    [self fetchCustomers];
    // Do any additional setup after loading the view, typically from a nib.
}

在我想要侧边菜单的控制器中,但视图似乎已加载到当前视图中,而不是仅仅返回到后面,因此当我将菜单滑过时可以看到它。

有人可以帮我把 myDelegate 视图放到后面吗?

【问题讨论】:

    标签: iphone objective-c ios5 xcode4.2


    【解决方案1】:

    我不完全确定您要完成什么,所以我必须猜测。听起来您想将myDelegate.view 隐藏在self.view 后面。这样不行。

    sendSubviewToBack: 将子视图发送到发送者的视图层次结构的后面,在您的情况下为self.view。它永远不会发送低于其父视图的子视图。

    您可以改为将myDelegate.view 作为子视图添加到self.views 超级视图,并将其放在self.view 后面:

    [[self.view superview] insertSubview:myDelegate.view belowSubview:self.view];
    

    【讨论】:

    • 您的代码将其从列表中删除,但是当我将菜单滑过时,它仍然不会在后台显示。我正在编辑我的 OP,以包括我对幻灯片菜单遵循的建议。
    • 我知道你想要完成什么,但你没有提供足够的细节 - 我看不到你的整个视图层次结构,我猜不出哪个视图做了什么和什么框架他们有。老实说,我什至不知道您所说的“在后台显示”是什么意思。
    • 您是否阅读了 OP 中的链接?那家伙解释了该怎么做,但我似乎无法让它发挥作用。
    • 我知道它应该是什么样子,我只是不知道你的问题是什么:它根本不显示,它是否显示在它不应该在上面的东西之上?另外,我不知道您的 self.view 包含什么,也不知道您的普通内容视图(滑到一边的视图)在哪里。
    • 我的 self.view 是一个带有项目的 tableview 容器。当我单击滑动按钮时,它会滑动,但左侧菜单全黑,就像没有加载一样。左视图也将是一个表格视图。
    【解决方案2】:

    我决定只使用 https://github.com/Inferis/ViewDeck 并让它管理视图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多