自定义UIToolbar按钮不起作用

时间:2012-06-13 13:25:47

标签: ios uibarbuttonitem uitoolbar

enter image description here

我的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];

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

非常感谢!

2 个答案:

答案 0 :(得分:1)

究竟什么不起作用?

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

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

答案 1 :(得分:0)

这就是发生的事情:

  1. 使用界面构建器,将UIBarButtonItem链接到控制器,告诉控制器该特定UIBarButtonItem是self.toolbarButton。

  2. 然后在你的代码中,你告诉你的控制器self.toolbarButton现在是你用代码创建的另一个按钮(但你还没有添加到你的视图中)

  3. [[UIBarButtonItem alloc] initWithCustomView:aboutToolbarButton];
    

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

    因此,您在视图中看到的按钮在您看来“无效”,因为您尚未为该按钮指定任何选择器。

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

    说完这一切后,您似乎无法理解界面构建器的工作原理。我建议你阅读更多教程,甚至更好,得到Apress的这本书: http://www.apress.com/9781430236054