我需要在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];
}
答案 0 :(得分:1)
在将其添加为子视图之前执行[segmentedControl layoutIfNeeded]
。