我在根视图控制器类实现中使用以下代码:
- (void)viewDidLoad
{
[super viewDidLoad];
NSArray *segmentTextContent = [NSArray arrayWithObjects:
NSLocalizedString(@"button1", @""),
NSLocalizedString(@"button2", @""),
NSLocalizedString(@"button3", @""), nil];
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] nitWithItems:segmentTextContent];
segmentedControl.selectedSegmentIndex = 0;
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.frame = CGRectMake(0, 0, 400, 30);
self.navigationItem.titleView = segmentedControl;
[segmentedControl release];
}
分段控件未正确居中,它向右移动了几个像素。有趣的是,它也没有正确对齐。就好像有一些左边的填充物阻止它居中。另一个有趣的事情是,如果我在界面构建器中绘制这个分段控件,它会完美地居中,所以这只是一个程序问题。
我已经在一个全新的空应用程序中尝试了这个代码,并获得了相同的结果,所以我知道我的应用程序中没有其他东西导致它。
抱歉,我想发布一个屏幕截图,但我没有足够的声望点; - )
任何想法?
答案 0 :(得分:0)
没有左按钮,我甚至尝试过:
self.navigationItem.leftBarButtonItem = nil;
self.navigationItem.backBarButtonItem = nil;
正如我所说,它适用于IB,而不是代码。它也在一个全新的项目中失败 - 你可以亲自尝试一下,看看......
我好像找到了解决办法。为宽度指定的400导致了问题。我指定了300,现在它正确居中。我理想情况下应该抓住一些全局屏幕宽度值而不是硬编码300。