-2

我正在努力将 UIButton 添加到屏幕底部的工具栏,问题是它似乎没有出现在工具栏的顶部,而是隐藏在它的下方。

我试图将其添加到的工具栏代码(以及下面的返回按钮代码)是;

请忽略坐标,因为它们不是 100%,但 iPhone 版本至少应该显示在工具栏上,因为它在同一区域周围,我可以在之后调整它。

//Insert Main Toolbar On Main View
    if (IS_IPHONE_5) {

            //offsetY = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) ? 6 : 6 * 2;

        offsetY = (1136 - 960) / 2;

        frameRect = CGRectMake(0, SCREEN_HEIGHT - 53, 320 * 2, 53);

    }else if (IS_IPHONE || IS_IPHONE_4) {
            offsetY = 0;
            frameRect = CGRectMake(0, SCREEN_HEIGHT - 53, 320 * 2, 53);

    } else {

        frameRect = CGRectMake(0, 1024 - 53 * 2, 768 * 2, 53 * 2);
    }

  offsetY = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) ? 6 : 6 * 2;

    main_toolbar = [[UIImageView alloc] initWithFrame:frameRect];
    [main_toolbar setImage:[UIImage imageNamed:[g_AppUtils resourceNameForDevice:@"ToolbarBackground" ofType:@"png"]]];
    main_toolbar.userInteractionEnabled = YES;
    [self.view addSubview:main_toolbar];
    [main_toolbar release];

    //Insert Go Back Button On Main Toolbar
    goHome_button = [[UIButton alloc] initWithFrame:frameRect];
    goHome_button = [UIButton buttonWithType:UIButtonTypeCustom];
    [goHome_button setImage:[UIImage imageNamed:@"BackButton.png"] forState:UIControlStateNormal];

    [goHome_button addTarget:self action:@selector(backButtonPressed:) forControlEvents:UIControlEventTouchUpInside];

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
        goHome_button.frame = CGRectMake(55, 410, 46, 42);
    } else {
        goHome_button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
    }

   [main_toolbar addSubview:goHome_button];
  [self.view addSubview:goHome_button];
4

2 回答 2

2

您需要使用 initWithCustomView 创建 UIBarButtonItem 以将 UIButton 与其关联。接下来将所有条形按钮项添加到 UIToolBar 的 setItems 方法。像这样的东西:

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:myButton];
[buttons addObject:barButton];  // buttons is a NSMutableArray
[mainToolBar setItems:buttons animated:YES];  

对于间距:

UIBarButtonItem *spacerFlex = [[UIBarButtonItem alloc]
                            initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                               target:nil
                               action:nil];

UIBarButtonItem *spacer = [[UIBarButtonItem alloc]
                               initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
                               target:nil
                               action:nil];
[spacer setWidth:50];  // 50 just an example

将 spcerFlex 或 spacer 添加到按钮数组中......根据您需要的布局。

于 2013-04-02T03:40:44.010 回答
1

您正在将按钮添加到您的视图中。

...  
[main_toolbar addSubview:goHome_button];
[self.view addSubview:goHome_button]; <--- Remove this line
于 2013-04-02T00:47:37.747 回答