自定义 UIToolbar 按钮不起作用

Posted

技术标签:

【中文标题】自定义 UIToolbar 按钮不起作用【英文标题】:Custom UIToolbar button doesn't work 【发布时间】:2012-06-13 13:25:46 【问题描述】:

我的 xib 文件中有一个条形按钮项。

.h:

    @property (nonatomic, retain) IBOutlet UIBarButtonItem *toolbarButton;

.m:

    UIButton *aboutToolbarButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [aboutToolbarButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; 
    [aboutToolbarButton setTitle:@"about" forState:UIControlStateNormal];
    aboutToolbarButton.titleLabel.font = [UIFont fontWithName:@"Helvetica" size:12.0f];
    [aboutToolbarButton.layer setCornerRadius:4.0f];
    [aboutToolbarButton.layer setMasksToBounds:YES];
    [aboutToolbarButton.layer setBorderWidth:1.0f];
    [aboutToolbarButton.layer setBorderColor: [[UIColor grayColor] CGColor]];
    aboutToolbarButton.frame = CGRectMake(0.0, 100.0, 60.0, 30.0);
    [aboutToolbarButton addTarget:self action:@selector(getToUserSettingsViewController) forControlEvents:UIControlEventTouchUpInside];
    self.toolbarButton = [[UIBarButtonItem alloc] initWithCustomView:aboutToolbarButton];

我用按钮连接到文件所有者,但它不起作用,请帮助我。

非常感谢!

【问题讨论】:

【参考方案1】:

究竟什么不起作用?

aboutToolbarButton.frame = CGRectMake(0.0, 100.0, 60.0, 30.0);

y=100?工具栏只有 44 像素高...

【讨论】:

谢谢...我真是个白痴,但我把它改成(0.0, 0.0, 60.0, 30.0) 还是不行。【参考方案2】:

这是正在发生的事情:

    使用界面生成器,您将 UIBarButtonItem 链接到控制器,告诉控制器该特定 UIBarButtonItem 是 self.toolbarButton。

    然后在您的代码中,您告诉控制器 self.toolbarButton 现在是您通过代码创建的另一个按钮(但您尚未添加到您的视图中)使用

[[UIBarButtonItem alloc] initWithCustomView:aboutToolbarButton];

现在 self.toolbarButton 不再是界面构建器中的按钮了。

因此,您认为您在视图中看到的按钮“不起作用”,因为您没有为该按钮分配任何选择器。

我建议您使用界面生成器将 IBAction 链接到按钮。

说了这么多,看来你还是不明白interface builder的工作原理。我建议您阅读更多教程甚至更好,从 Apress 获得这本书: http://www.apress.com/9781430236054

【讨论】:

以上是关于自定义 UIToolbar 按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义图像按钮在 UIToolbar 上命中目标不正确

InputAccessoryView的子视图工具栏按钮不起作用

为啥我的自定义按钮状态不起作用?

自定义后退按钮图像在导航栏上不起作用

UICollectionView 单元格的自定义委托 - 自定义按钮不起作用

IOS自定义导航返回按钮不起作用