2014-03-04 2 views
2

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]; 

} 
+0

보기에 컨트롤을 어떻게 추가합니까? 코드 게시 – vokilam

+0

컨트롤러의 viewDidLoad에서 위의 메소드 "configureInitialPage"를 호출했습니다. – Shradha

답변

1

수행 [segmentedControl layoutIfNeeded] 하위보기로 추가하기 전에 다음 코드를 입력하십시오.

+0

이 작업을 수행했지만 세그먼트 컨트롤의 일부 세그먼트 만 텍스트에 맞습니다. 일부는 .. !! 그러나 코드 줄을 제거한 다음 세그먼트 중 하나를 클릭하면 모든 세그먼트가 올바르게 정렬됩니다. 왜 이런 일이 발생합니까? – Shradha

+0

내 테스트에서, 나는 세분화 된 컨트롤에 프레임을 설정했다. 당신이 아직하지 않았다면 시도해 볼만한 무언가가있을 것입니다. 또한보기가 어떻게 추가되는지 보여 주어야합니다. –

+0

내 코드를 업데이트했습니다 .. 제발 .. – Shradha