【发布时间】:2011-12-02 19:32:07
【问题描述】:
所以我在 leftBarButtonItem 中有两个按钮。这是我的代码。
NSString *todayString = @"...";
UIBarButtonItem *todayButton = [[[UIBarButtonItem alloc] initWithTitle:todayString style:UIBarButtonItemStyleBordered target:self.calendarController action:@selector(todaySelected)] autorelease];
NSString *weeklyString = @"...";
UIBarButtonItem *weeklyButton = [[[UIBarButtonItem alloc] initWithTitle:weeklyString style:UIBarButtonItemStyleBordered target:self action:@selector(weekSelected)] autorelease];
UIToolbar *toolbar = [[[UIToolbar alloc] init] autorelease];
[toolbar setItems:[NSArray arrayWithObjects:todayButton, weeklyButton, nil]];
self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:toolbar] autorelease];
按钮的标题是动态的。有时标题可能会有点长。按钮展开并且看起来不错。但是,如果标题过长,UIToolbar 似乎会达到某个最大宽度,因为按钮在某个 X 点停止响应点击。 See image here
绿色表示响应触摸,红色表示不响应触摸。今天按钮响应触摸。然而,每周按钮仅在第二个“e”之前响应触摸。之后的任何内容都不会响应触摸。
一段时间以来,我一直在努力解决这个问题,但没有运气。我尝试扩展 UIToolbar 和 leftBarButtonItem 的框架。有谁知道发生了什么?提前致谢
【问题讨论】:
-
为什么要将 UIToolbar 视图分配给 UIBarButtonItem?
-
据我了解,这是向左/右BarButtonItem 添加多个按钮的标准方式。我在关注这个例子:mattdipasquale.com/blog/2010/11/02/…
-
您要做的是创建一个自定义按钮视图,例如使用 UIButton,然后将其分配给您的 BarButtonItem 的自定义视图。您像对待任何其他按钮一样对待自定义视图,它应该可以工作。请参阅下面的答案。
-
我现在已经理解了这个问题并编辑了我的答案,抱歉。与其他答案类似,所以我不知道它是否有帮助......
标签: ios uinavigationcontroller uibarbuttonitem uinavigationitem