导航栏的标题视图中有UISegmentedControl
。我还有右键控制按钮(加)和左栏按钮(编辑),如下图所示..
单击ID段时,我隐藏了两个条形按钮(此处为编辑和加号按钮)。这就像..
我正在使用以下代码隐藏栏按钮项目。
- (void)segmentClicked {
segment = segmentedControl.selectedSegmentIndex;
self.navigationItem.leftBarButtonItem = leftBarButton; //leftBarButton is an instance of UIBarButtonItem
self.navigationItem.leftBarButtonItem = rightBarButton; //rightBarButton is an instance of UIBarButtonItem
if (segment == 0) {
//Do something for segment 1 click
}
else if (segment == 1) {
//Do something for segment 2 click
}
else {
self.navigationItem.leftBarButtonItem = nil;
self.navigationItem.rightBarButtonItem = nil;
}
}
我的问题是,当我从 segment1 (部门)或 segment2 (名称)切换到 segment3 (ID)时,{{ 1}}对齐得到改变。我怎样才能让它稳定下来?
先谢谢
答案 0 :(得分:1)
条形按钮项目自动对齐.. 如果删除其他项目,分段控件将会移动。 您需要做的是使用“固定空间”条形项来定位分段控件... 而不是使您的leftBarButtonItem为零,将其更改为固定空间项目的大小,以保持分段控件到位。 如果你想在实现之前看看它是如何工作的,只需在xib中放一个工具栏并添加“固定空间”和“灵活空间”项。
编辑:
非常直截了当。只要看看uibarbuttonitem类。创建一个类型为固定空间的系统栏按钮项目对象,并根据需要设置其宽度。并将其设置为左栏按钮:
UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
item.width = 50;
self.navigationItem.leftBarButtonItem = item;
[item release];
编辑2:
另一个建议 - 为细分使用较短的文字。喜欢使用Dept.而不是Department。如果标题视图中的分段控件足够短,则不会受到条形按钮的影响。