0

我正在阅读 Mark、Nutting 和 LaMarche(Apress 2011)撰写的“开始 iOS 5 开发”的第 15 章。在第 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 中合成了它。为什么我在 iOS 6 模拟器中没有看到这个 segmentedControl?

4

1 回答 1

0

应该多半是因为分段控件的框架不对。

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

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

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

[self.view带来SubviewToFront:self.segmentedControl]

这应该让您知道出了什么问题

于 2013-01-11T19:32:12.667 回答