UISegmentControl自定义在ios 7中不工作

UISegmentControl自定义在ios 7中不工作,ios,iphone,objective-c,ipad,Ios,Iphone,Objective C,Ipad,下面的代码在ios 6中运行良好,但在ios 7中不起作用 for (id segment in [cell.m_CtrlSegment subviews]) { for (id label in [segment subviews]) { if ([label isKindOfClass:[UILabel class]]) { UILabel *titleLabel = (UILabel *)

下面的代码在ios 6中运行良好,但在ios 7中不起作用

for (id segment in [cell.m_CtrlSegment subviews]) {

            for (id label in [segment subviews]) {

                if ([label isKindOfClass:[UILabel class]]) {

                    UILabel *titleLabel = (UILabel *) label;

                    //inserting line here, to make the frame behave nicely:
                    //
                    titleLabel.frame = CGRectMake(0, 0, (cell.m_CtrlSegment.frame.size.width/DownloadCount)-4,40);
                    titleLabel.textColor = [UIColor blackColor];
                    titleLabel.backgroundColor = [UIColor clearColor];
                    titleLabel.font = [UIFont systemFontOfSize:12];
                    titleLabel.textAlignment = UITextAlignmentCenter;
                    titleLabel.lineBreakMode = UILineBreakModeWordWrap;
                    titleLabel.shadowColor = [UIColor darkGrayColor];
                    titleLabel.numberOfLines = 0;

                }
            }
        }

标签的颜色仍为蓝色,但当选择其中一个索引时,代码会起作用。

您真的不应该使用此类黑客,您的应用程序可能会因此被拒绝

2.5

我们还发现,您的应用程序与组织和布局交互 提供的视图的内部层次结构的,该层次结构是私有实体。 与私人实体的交互不符合应用程序的要求 商店审查指南

在定制方面,代理是最好的,可以从iOS5获得


依靠这种层次结构黑客很可能会在未来的IOS中破坏,因为您正在进行实验。

iOS7中的层次结构发生了变化,因此请在此中断,检查UISegmentControlView的子视图和超级视图,并根据层次结构视图自定义所需的子视图。