【问题标题】:iPhone sdk how to UIButton in UIToolbar?iPhone sdk 如何在 UIToolbar 中添加 UIButton?
【发布时间】:2013-01-10 05:14:56
【问题描述】:

是否可以在UIToolbar 中添加UIButton?或者我们只能使用UIBarButtonItem?如果是这样,如何在UIToolbar 中添加UIButton

【问题讨论】:

标签: iphone uibutton uibarbuttonitem uitoolbar


【解决方案1】:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setBackgroundImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[btn addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *barBackButton = [[UIBarButtonItem alloc] initWithCustomView:btn];
[toolBar setItems:[NSArray arrayWithObject:barBackButton]];

【讨论】:

    【解决方案2】:

    您可以将UIBarButtonItem 添加到UIToolBar,如下所示。

    下面是一个例子,试试这个..

    只需在 viewDidLoad 方法中添加此波纹管代码,然后查看UIToolBar 和这两个UIBarButtonItems 也在这里我添加 Flixiblespace 以设置这两个按钮的左右角为UIToolBar

    UIBarButtonItem *flexiableItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
    UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:nil];
    UIBarButtonItem *item2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:nil];
    
    UIToolbar *toolbar = [[UIToolbar alloc] init];
    toolbar.frame = CGRectMake(0, 0, self.view.frame.size.width, 44);
    NSArray *items = [NSArray arrayWithObjects:item1, flexiableItem, item2, nil];   
    self.toolbarItems = items;
    
    [flexiableItem release];
    [items release];
    [self.view addSubview:toolbar];
    [toolbar release];
    

    查看此链接以获取有关UIBarButtonItemUIToolbar_Class 的更多信息

    更新:

    对于您的此要求,您可以删除该按钮并添加新按钮而不是旧按钮..参见示例..

    NSMutableArray     *items = [[yourToolbar.items mutableCopy] autorelease];
    [items removeObject: yourButtons];
    yourToolbar.items = items;
    

    希望对你有帮助……

    【讨论】:

    • 目前我只使用了 barbuttonitem。但我想隐藏几个按钮并在某些条件下在同一位置添加新按钮。由于我们无法隐藏 BarButtonItem(只有我们可以启用/禁用)。我打了。这就是我选择 UIButton 的原因。
    • @Saranya 查看更新的答案.. 在这里您需要在全局范围内定义按钮和收费栏,并在需要时删除和添加.. 希望现在对您有用.. :)
    • 可能是他只想要自定义按钮,所以他完成了老兄.. :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多