2014-06-10 3 views
0

사용자 정의 uitableviewcell에서 행을 만들 때 세그먼트 화 된 컨트롤이 작성됩니다. 각 행은 형식의 질문입니다. 문제의 유형에 따라 분류 된 컨트롤은 다른 답변을 가질 수 있습니다. UISegmentedControl 참조에서는 모든 세그먼트를 한 번에 설정할 수 있도록 init 메서드 만 나열합니다. 해당 세그먼트가있는 세그먼트를 업데이트하기 위해 제거 및 삽입을 사용하는 것보다 나은 방법이 있습니까? 사용자 지정 jQuery과 셀의 init에서작성한 후 iOS 세그먼트 화 된 컨트롤 세트 세그먼트

그것은 그것은 세그먼트

NSMutableArray *answers = [NSMutableArray arrayWithObjects:@"IN", @"OUT", nil]; 
if (_question.noItem.boolValue) { 
    [answers addObject:@"N/O"]; 
} 
if (_question.naItem.boolValue) { 
    [answers addObject:@"N/A"]; 
} 
_answerSegmented.segments = answers; // <---- this line gives a compile error 

답변

3

아니, 더 좋은 방법이 없습니다해야 무엇을 나중에 알고 있다는까지이 아니다

_answerSegmented = [[UISegmentedControl alloc] init]; 
[_answerSegmented addTarget:self action:@selector(answerChanged:) forControlEvents:UIControlEventValueChanged]; 
_answerSegmented.backgroundColor = [UIColor columnHeaderBackground]; 
[self addSubview:_answerSegmented]; 

있습니다. 모든 세그먼트 컨트롤의 세그먼트 수가 같으면 해당 세그먼트 수를 사용하여 컨트롤을 만듭니다. 그런 다음 setTitle:forSegmentAtIndex:을 사용하여 한 번에 하나씩 각 세그먼트의 제목을 변경하십시오.

숫자가 바뀔 수있는 경우 removeAllSegmentsinsertSegmentWithTitle:atIndex:animated:을 사용하십시오.

또는 단순히 새 세그먼트 컨트롤을 만들고 매번 이전 세그먼트를 제거하십시오.

+0

xx. 항목 수가 동적이어서 제거하고 다시 삽입해야합니다. –