2012-11-23 2 views
2

다음은 켜기/끄기 색이 포함 된 사용자 지정 세그먼트 화 컨트롤에 대해 내 앱에서 사용하는 코드입니다. 그러나 iOS 6에서는보기가 처음로드 될 때 기본 색상입니다. 세그먼트 중 하나를 선택하면 적절한 맞춤 색상이 나타납니다. 어떻게 내가 그 때보기로드를 표시하고 당신이보기에 대한 기본 색조 색상을 설정 한 부하 방법을 몇 가지 논리를 이동해야 그렇지 않은 아이폰 OS 6iOS 6 분할 된 컨트롤 사용자 지정 색조 색

#define kTagFirst 111 
#define kTagSecond 112 
#define kTagThird 113 

- (IBAction)segmentedControlChanged:(id)sender 
{ 
    UIColor *darkBG = [UIColor colorWithRed:149.0/255.0 green:133.0/255.0 blue:115.0/255.0 alpha:1.0]; 
    UIColor *lightBG = [UIColor colorWithRed:234.0/255.0 green:232.0/255.0 blue:217.0/255.0 alpha:1.0]; 
    UIColor *darkText = [UIColor colorWithRed:85.0/255.0 green:72.0/255.0 blue:60.0/255.0 alpha:1.0]; 
    UIColor *lightText = [UIColor whiteColor]; 

    [segmentedControl setTintColor:darkBG forTag:kTagFirst]; 
    [segmentedControl setTintColor:darkBG forTag:kTagSecond]; 
    [segmentedControl setTintColor:darkBG forTag:kTagThird]; 
// [segmentedControl setTextColor:lightText forTag:kTagFirst]; 
// [segmentedControl setTextColor:lightText forTag:kTagSecond]; 
// [segmentedControl setTextColor:lightText forTag:kTagThird]; 

    switch (segmentedControl.selectedSegmentIndex) 
    { 
    case 0: 
     mapView.hidden = YES; 
     infoView.hidden = YES; 
     [segmentedControl setTintColor:darkBG forTag:kTagFirst]; 
     [segmentedControl setTintColor:lightBG forTag:kTagSecond]; 
     [segmentedControl setTintColor:lightBG forTag:kTagThird]; 
     [segmentedControl setTextColor:lightText forTag:kTagFirst]; 
     [segmentedControl setTextColor:darkText forTag:kTagSecond]; 
     [segmentedControl setTextColor:darkText forTag:kTagThird]; 
     //[segmentedControl setShadowColor:lightBG forTag:kTagFirst]; 
     [segmentedControl setShadowColor:lightBG forTag:kTagSecond]; 
     [segmentedControl setShadowColor:lightBG forTag:kTagThird]; 
     break; 
    case 1: 
     mapView.hidden = NO; 
     infoView.hidden = YES; 
     [segmentedControl setTintColor:lightBG forTag:kTagFirst]; 
     [segmentedControl setTintColor:darkBG forTag:kTagSecond]; 
     [segmentedControl setTintColor:lightBG forTag:kTagThird]; 
     [segmentedControl setTextColor:darkText forTag:kTagFirst]; 
     [segmentedControl setTextColor:lightText forTag:kTagSecond]; 
     [segmentedControl setTextColor:darkText forTag:kTagThird]; 
     [segmentedControl setShadowColor:lightBG forTag:kTagFirst]; 
     //[segmentedControl setShadowColor:lightBG forTag:kTagSecond]; 
     [segmentedControl setShadowColor:lightBG forTag:kTagThird]; 
     break; 
    case 2: 
     mapView.hidden = YES; 
     infoView.hidden = NO; 
     [segmentedControl setTintColor:lightBG forTag:kTagFirst]; 
     [segmentedControl setTintColor:lightBG forTag:kTagSecond]; 
     [segmentedControl setTintColor:darkBG forTag:kTagThird]; 
     [segmentedControl setTextColor:darkText forTag:kTagFirst]; 
     [segmentedControl setTextColor:darkText forTag:kTagSecond]; 
     [segmentedControl setTextColor:lightText forTag:kTagThird]; 
     [segmentedControl setShadowColor:lightBG forTag:kTagFirst]; 
     [segmentedControl setShadowColor:lightBG forTag:kTagSecond]; 
     //[segmentedControl setShadowColor:lightBG forTag:kTagThird]; 
     break; 
    } 
} 

- (void)viewDidLoad 

{ 
    [segmentedControl setTag:kTagFirst forSegmentAtIndex:2]; 
    [segmentedControl setTag:kTagSecond forSegmentAtIndex:1]; 
    [segmentedControl setTag:kTagThird forSegmentAtIndex:0]; 
    [self segmentedControlChanged:nil]; 

    mapView.hidden = YES; 
    infoView.hidden = YES; 
    segmentedControl.selectedSegmentIndex = 0; 

답변

0

에 장치의 호환 보장하도록 어떻게해야합니까 로드시 세그먼트 표시 줄. 지금 당장은 IBAction에 모든 논리가 있습니다. 처음 선택 될 때까지 호출되지 않을 것입니다. 내가있는 viewDidLoad에서 생각 코드의 하단에 무엇

+0

을하는 데 도움이

희망. 그것이 그것을 알기에 충분하지 않습니까? 당신의 도움을 주셔서 감사합니다! –