Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将UISegmentedControl中的段添加到NSArray_Ios_Objective C_Nsarray_Uisegmentedcontrol_For In Loop - Fatal编程技术网

Ios 将UISegmentedControl中的段添加到NSArray

Ios 将UISegmentedControl中的段添加到NSArray,ios,objective-c,nsarray,uisegmentedcontrol,for-in-loop,Ios,Objective C,Nsarray,Uisegmentedcontrol,For In Loop,我试图向一个数组中添加两个段,然后在其子视图中循环。这是我的密码: NSArray *myArray = [[NSArray alloc] initWithObjects:[self.segment.subviews objectAtIndex:0], [self.dataSegmentedControl.subviews objectAtIndex:1], nil]; for (id innerView in myArr

我试图向一个数组中添加两个段,然后在其子视图中循环。这是我的密码:

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语句中插入NSLog时,不会得到任何输出。我能做些什么来解决这个问题呢?:

对于您看到的问题,只有两个可能的原因:

数组的元素都不是UILabel 数组中没有元素。这可能是因为[self.segment.subviews objectAtIndex:0]返回nil,这只意味着self.segment为nil。 在进行任何假设之前,请尝试探索视图层次结构。因此,打印出线段及其子视图以了解层次结构


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

[self.segment.subviews objectAtIndex:0]和[self.dataSegmentedControl.subviews objectAtIndex:1]的值是多少?也许两者都不是一个标签@Jessica我认为他们的子视图是以下作品:对于UIView*v,在[[[segment Subview]对象索引:0]子视图中]但是我只需要在两个部分上完成它。你想完成什么?请记住,试图挖掘标准控件的私有子视图结构只会在每次iOS更新和结构更改时导致错误和崩溃。如果控件没有通过提供的API提供所需的自定义,那么正确的解决方案是编写或查找一个满足您需要的自定义控件。