UISegmentedControl仅显示设备上的第一个项目,但在模拟器中工作

时间:2011-07-25 18:35:31

标签: ios uisegmentedcontrol rightbarbuttonitem navigationitem

我已经搜索了如何将UISegmentedControl项添加到导航栏按钮项(右侧栏按钮)。它在模拟器中工作正常但是当我在设备上尝试时,只显示分段控件中的第一项。它占据了整个长度(即整个事物只有一个部分)。

- (void) setupSegmentedControl {
//set up the segmented control and add it to the nav bar rightBartButtonItem
UISegmentedControl * segmentControl = [[UISegmentedControl alloc] initWithItems:[NSArray         arrayWithObjects:[UIImage imageNamed:@"Settings.png"],[UIImage imageNamed:@"Map-Icon.png"],[UIImage imageNamed:@"Search.png"], nil]];
UIBarButtonItem * segmentControlButton = [[UIBarButtonItem alloc] initWithCustomView:segmentControl];
[segmentControl setBackgroundColor:[UIColor clearColor]];
segmentControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentControl.frame = CGRectMake(0, 0, 75, 30);
[segmentControl setMomentary:YES];
[segmentControl addTarget:self
                   action:@selector(segmentedControlAction:)
         forControlEvents:UIControlEventValueChanged];
self.navigationItem.rightBarButtonItem = segmentControlButton;
[segmentControl release];

}

任何想法出了什么问题?

1 个答案:

答案 0 :(得分:2)

确保图像文件名与项目中的资源名称完全匹配,包括大写/小写字母。

设备区分大小写,如果名称不匹配,imageNamed:将返回nil终止数组。