将 UISegmentedControl 中的段添加到 NSArray

Add segments from a UISegmentedControl to an NSArray

我正在尝试将 2 segments 添加到 array,然后遍历其子视图。这是我的代码:

NSArray *myArray = [[NSArray alloc] initWithObjects:[self.segment.subviews objectAtIndex:0],
                                   [self.dataSegmentedControl.subviews objectAtIndex:1], nil];


for (id innerView in myArray) // I tried "myArray.subviews" but it didn't let me do ".subviews"
{
    if ([innerView isKindOfClass:[UILabel class]]) {
        ...
    }
}

当我在 if statement 中插入 NSLog 时,我没有得到任何输出。我能做些什么来解决这个问题?:

您看到的只有两个可能的原因:

  1. None 的数组元素是 UILabel
  2. 数组中没有元素。这可能是因为 [self.segment.subviews objectAtIndex:0] returns nil,这仅意味着 self.segment 为 nil。

尝试探索视图层次结构,然后再进行任何假设。因此,打印出段及其子视图以了解层次结构。

但是,如果您想更改某些段的字体大小而不更改其他段的字体大小,我建议您不要这样做,以免弄乱内部结构。如果成功了,您应该预料到任何即将到来的系统更新都会出现问题。 我建议您搜索其他第 3 方组件或构建您自己的组件。