1

我正在尝试以UILabel编程方式添加一个UIToolBar,但它似乎没有出现。这就是我对我的代码所做的。

- (void) viewWillAppear:(BOOL)animated 
{
    // Create custom toolbar at top of screen under navigation controller
    [matchingSeriesInfoToolBar setFrame:CGRectMake(0, 60, 320, 30)];  
    matchingSeriesInfoToolBar = [UIToolbar new];
    [matchingSeriesInfoToolBar sizeToFit];
    CGFloat toolbarHeight = 30;
    CGRect mainViewBounds = [[UIScreen mainScreen] applicationFrame];
    [matchingSeriesInfoToolBar setFrame:CGRectMake(CGRectGetMinX(mainViewBounds), 0, CGRectGetWidth(mainViewBounds), toolbarHeight)];
    matchingSeriesInfoToolBar.tintColor = [UIColor darkGrayColor];
    [self.view addSubview:matchingSeriesInfoToolBar];

    // Create size of uitableview (to fit toolbar.
    [matchingSeriesTableView setFrame:CGRectMake(0, 30, self.view.frame.size.width, self.view.frame.size.height - 30)];
    [self.view addSubview:matchingSeriesTableView];

    // Ad UILabel to the toolbar
    UIBarButtonItem *textFieldItem = [[UIBarButtonItem alloc] initWithCustomView:manufSelectionLabel];
    matchingSeriesInfoToolBar.items = [NSArray arrayWithObject:textFieldItem];
    manufSelectionLabel.text = @"Hello World!";

    [super viewWillAppear:animated];
}

所以几乎我已经创建了一个自定义工具栏,我已经从屏幕底部更改了通常的位置,显示在 下UINavigationController,这也像这样添加到视图中,因此它在视图转换中正确动画..

之后,我创建了 tableview 的大小,以便它出现在自定义工具栏之后..

然后从那里我试图添加一个UILabel到工具栏..但由于某种原因它没有工作。

任何帮助将不胜感激。

4

2 回答 2

8

您必须在某处实际创建标签。这段代码工作得很好。

UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
[self.view addSubview:toolbar];

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 44)];
label.backgroundColor = [UIColor clearColor];

UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:label];
toolbar.items = [NSArray arrayWithObject:item];

label.text = @"Hello World";
于 2012-05-21T21:50:30.773 回答
0

在您发布的代码中,您永远不会制作UILabel. 您的评论在工具栏上说 Ad UILabel ,但您随后继续UIBarButtonItem使用自定义视图制作一个manufSectionLabel

创建的代码在哪里manufSectionLabel


PS这条线什么都不做:

[matchingSeriesInfoToolBar setFrame:CGRectMake(0, 60, 320, 30)];

因为那时matchingSeriesInfoToolbar是nil-你还没有成功!

于 2012-05-21T21:43:11.257 回答