以编程方式将UILabel添加到工具栏

时间:2012-05-21 21:35:01

标签: iphone ios uitableview uilabel uitoolbar

我正在尝试以编程方式将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 ..但由于某种原因它没有用完。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分: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";

答案 1 :(得分:0)

在您发布的代码中,您永远不会制作UILabel。您的评论说明广告UILabel到工具栏,然后您继续使用自定义视图UIBarButtonItem制作manufSectionLabel

创建manufSectionLabel的代码在哪里?


PS此行无效:

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

因为在那一点matchSeriesInfoToolbar是nil - 你还没有成功!