addSubview不会显示UISegmentedControl

时间:2013-01-11 17:46:21

标签: ios uisegmentedcontrol

我正在阅读Mark,Nutting和LaMarche的“开始iOS 5开发”第15章(Apress 2011)。在页556,我应该从代码显示分段控件,而不是从库中将对象拖动到nib。代码片段是 ......

self.smileyView.image = self.smiley;

self.segmentedControl = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObjects:@"One", @"Two", @"Three", @"Four", nil]];
self.segmentedControl.frame = CGRectMake(bounds.origin.x + 20, CGRectGetMaxY(bounds) - 50, bounds.size.width - 40, 30);

[self.view addSubview:self.segmentedControl];

[self.view addSubview:self.smileyView];
[self.view addSubview:self.label];

......

请注意,笑脸和标签会按预期显示,但分段控件不会显示。顺便说一下,我已经在.h中正确声明了属性segmentedControl并在.m中合成了它。 为什么我没有看到这个segmentedControl出现在iOS 6模拟器中?

1 个答案:

答案 0 :(得分:0)

主要是因为分段控制的框架不正确。

在添加子视图行之后放置一个NSLog,如下所示,以查看它在屏幕中的位置及其大小

  NSLog(@"frame %@", NSStringFromCGRect(self.segmentedControl.frame))

作为最后的努力,尝试将分段控制带到前面。

[self.view bringSubviewToFront:self.segmentedControl]

这可以让你知道出了什么问题