如何测试toolBar中的项是否为FlexibleSpace项?

时间:2014-05-19 09:17:20

标签: ios uibarbuttonitem uibarbuttonsystemitem

我想知道UIBarButtonItem中枚举的self.toolbarItems是一个按钮,哪个是灵活的空间项目。

3 个答案:

答案 0 :(得分:2)

由于 A-Live 确认了我的发现,即我无法查询UIBarButtonItem以检查它是否是FlexibleSpace(或FixedSpace)我已经使用标记将这些项目标记为灵活且固定空间(2个不同的整数)并将这些数字放在常量中然后在我使用的代码中:

for(int i=0; i<self.toolbarItems.count; i++)
{
    if(item.tag != TOOLBAR_FIXED_SPACE_TAG && 
       item.tag != TOOLBAR_FLEXIBLE_SPACE_TAG)
    {
        //count real button:)
    }
}

答案 1 :(得分:0)

上面的答案我无法实际工作,所以我使用了这个。希望这可以帮助某人:

 for(int i=0; i<[buttonArray count]; i++){
      UIBarButtonItem *buttonItem = [[self items] objectAtIndex:i];
      if(buttonItem.title){
           NSLog(@"Double Boom %@", buttonItem);
      }
 }

**灵活/固定空间不包含标题......这是我能立即看到的唯一真正的区别。所以,我只是在检查标题。

答案 2 :(得分:0)

Dirty Swift 5.0 解决方案:

let fixedSpaces = toolbarItems?.filter({ $0.description.contains("systemItem=FixedSpace") })

它可能会随着时间的推移而中断,但足以用于调试目的。

每次使用后都要使用洗手液。