2017-11-28 12 views
3

HMSegmentedControl에서 반복되는 세그먼트 선택을 수행하려고합니다. 수단 세그먼트가 이미 선택되어있는 경우,를 누르거나 다시 선택하면 세그먼트 선택에 따라 다음 기능을 수행/다시로드해야합니다. HMSegmentedControl.swift 파일에서HMSegmentedControl에서 선택한 세그먼트를 반복하거나 다시 선택하는 방법은 무엇입니까?

+0

포드 또는 클래스 만 사용하고 있습니까? 신속하거나 objc? –

+0

@JayeshThanki 방금 수업을 사용하고 있으며 목표는 C입니다. 감사합니다. –

+0

업데이트 된 답변을 확인하십시오. –

답변

0

, 당신은 탭 이벤트 것이다 occures을 선택를 누릅니다 때마다 그냥 true로 indexChanged 부울 변수를 변경하거나 다음의 경우 조건에서 indexChanged 변수를 제거 할 수있는 tapped(segmentButton:) 기능이있다. 여기에 실제 기능 코드 :

스위프트

func tapped(segmentButton sender: UIButton) { 
    let newIndex = sender.tag 
    //let indexChanged: Bool = newIndex != selectedSegmentIndex 
    let indexChanged: Bool = true 
    selectedSegmentIndex = newIndex 

    if let indexChangedHandler = indexChangedHandler, indexChanged == true { 
     indexChangedHandler(selectedSegmentIndex) 
    } 

    setSelectedSegmentIndex(newIndex, animated: true) 
} 

또는

func tapped(segmentButton sender: UIButton) { 
    let newIndex = sender.tag 
    selectedSegmentIndex = newIndex 

    if let indexChangedHandler = indexChangedHandler { 
     indexChangedHandler(selectedSegmentIndex) 
    } 

    setSelectedSegmentIndex(newIndex, animated: true) 
} 

오브젝티브 C는

이 방법에 segment != self.selectedSegmentIndex 조건을 제거 할 수 있습니다

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event;

//if (segment != self.selectedSegmentIndex && segment < sectionsCount) { 
if (segment < sectionsCount) { 
    // Check if we have to do anything with the touch event 
    if (self.isTouchEnabled) 
     [self setSelectedSegmentIndex:segment animated:self.shouldAnimateUserSelection notify:YES]; 
} 

참고 : 주석 처리 된 행 (1 행)은 오래된 코드이고 2 행은 새로운 코드입니다.

+0

친절한 도움을 주셔서 감사합니다 :) –