单击一段UISegmentedControl后显示多行文本,但最初不是 - 更新代码

时间:2014-03-04 07:07:52

标签: ios objective-c uisegmentedcontrol

我需要在UISegmentedControl的每个细分中设置多行文字。 我尝试了以下代码,它工作正常,但问题是,当第一次加载页面,并且第一次显示分段控件时,它不会显示多行文本,但是当我点击时其中一个段,文本显示在多行。 如何解决这个问题?这是代码:

    -(void)configureInitialPage
    {
        //Setting up the segmented control
        UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:trends];
        segmentedControl.tintColor = [UIColor colorWithRed:0.03 green:0.28 blue:0.51 alpha:1.0];

        for (id segment in [segmentedControl subviews]) {

            for (id label in [segment subviews]) {

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

                    UILabel *titleLabel = (UILabel *) label;

                    titleLabel.frame = CGRectMake(0, 0, 97, 50);
                    [titleLabel setFont:[UIFont boldSystemFontOfSize:10]];
                    titleLabel.adjustsFontSizeToFitWidth = YES;
                    titleLabel.numberOfLines = 0;
                }
            }
        }

        [segmentedControl addTarget:self action:@selector(segmentValueChanged:) forControlEvents:UIControlEventValueChanged];
        segmentedControl.frame = CGRectMake(20, 510, 720, 40);
        segmentedControl.selectedSegmentIndex = 0;
        [segmentedControl layoutIfNeeded];
        [self.view addSubview:segmentedControl];

}

1 个答案:

答案 0 :(得分:1)

在将其添加为子视图之前执行[segmentedControl layoutIfNeeded]