我正在阅读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模拟器中?
答案 0 :(得分:0)
主要是因为分段控制的框架不正确。
在添加子视图行之后放置一个NSLog,如下所示,以查看它在屏幕中的位置及其大小
NSLog(@"frame %@", NSStringFromCGRect(self.segmentedControl.frame))
作为最后的努力,尝试将分段控制带到前面。
[self.view bringSubviewToFront:self.segmentedControl]
这可以让你知道出了什么问题