2013-04-02 86 views
-2

我很努力地将UIButton添加到屏幕底部的工具栏中,问题在于它看起来并不在工具栏的顶部,而隐藏在它的下面。如何以编程方式将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]; 

希望有任何帮助。

回答

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或间隔成按键阵列....每布局需要。

+0

非常感谢! :) – user1695971

1

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

... 
[main_toolbar addSubview:goHome_button]; 
[self.view addSubview:goHome_button]; <--- Remove this line 
+0

当然该框架是错误的,然后需要适应 –

+0

如果我删除该行,没有图像出现了。 如果我保留该行并删除[main_toolbar行,它会出现在工具栏后面:/ – user1695971

相关问题