programing tip

프로그래밍 방식으로 UIsegmentedControll을 어떻게 전환합니까?

itbloger 2020. 12. 6. 21:15
반응형

프로그래밍 방식으로 UIsegmentedControll을 어떻게 전환합니까?


UISegmentedControll프로그래밍 방식으로 전환하려면 어떻게합니까 ?


selectedSegmentIndex의 속성은 UISegmentedControl의 선택된 세그먼트를 식별한다. 이 속성을 유효한 세그먼트 인덱스 또는 UISegmentedControlNoSegment (-1)로 설정하여 현재 선택을 해제합니다.

// select the first segment
segmented.selectedSegmentIndex = 0;

// turn off the current selection
segmented.selectedSegmentIndex = UISegmentedControlNoSegment;

또는 selectedSegmentIndex를 변경 한 후 'sendActionsForControlEvents :'를 호출합니다.

segmentedControl.selectedSegmentIndex = 0

[segmentedControl sendActionsForControlEvents:UIControlEventValueChanged];

@jmstone 응답, true,이 작업은이 컨트롤에 대한 valueChanged 이벤트를 호출하지 않습니다.

이를 극복하는 한 가지 방법은 함수를 직접 호출하는 것입니다.

segmentedControl.selectedSegmentIndex = 3;
[self valueChangedMethod:segmentedControl];

다음을 호출합니다.

- (void)valueChangedMethod:(UISegmentedControl *)segmentedControl
{
    //continue your code here...
}

Swift에서 :

segmentedControl.selectedSegmentIndex = 1

스위프트 2 :

segmentedControl.sendActionsForControlEvents(UIControlEvents.ValueChanged)

스위프트 3 :

segmentedControl.sendActions(for: UIControlEvents.valueChanged)

세그먼트 컨트롤이 변경되지 않는 유사한 문제가 발생했습니다. 너무 일찍 "selectedSegmentIndex"등을 호출했습니다. "viewDidLoad"가 호출 된 후 호출하면 모든 것이 다시 정상화되었습니다.

참고 URL : https://stackoverflow.com/questions/5273775/how-do-i-switch-uisegmentedcontroll-programmatically

반응형