동일한 함수에서 코드의 일부를 다시 호출하려면 어떻게해야합니까?

존 아포 디스

추가 기능을 수행하지 않고 동일한 기능에서 코드를 다시 사용하고 싶습니다.

pinchGesture. ended이제 코드에 표시된대로이 코드를 호출하고 싶습니다.

    func isParformPinch(recognizer:UIPinchGestureRecognizer, forTag tag:Int, protectedTag protact:Int){

        if protact == tag{
            return
         }

    //THIS PART CALL AGAIN 

        if isPinching(forView: imageArray[tag],inView: recognizer.view!,  fromTransformation: recognizer.scale) {                                
             imageArray[tag].transform = imageArray[tag].transform.scaledBy(x: recognizer.scale, y: recognizer.scale)                     
         }

      if recognizer.state == .ended{
          // call again above condition

       }
    }
랜디

나는 당신이 성취하고 싶은 것을 완전히 이해하고 있는지 확신하지 못하지만, 당신이 찾고있는 것은 클로저 (Objective-C 블록 과 동일) 개념이라고 생각합니다 .

func isParformPinch(recognizer:UIPinchGestureRecognizer, forTag tag:Int, protectedTag protact:Int){

        if protact == tag{
            return
         }

       // Declare your block: it's kind of a function-variable
       let myBlock = {
           if isPinching(forView: imageArray[tag],inView: recognizer.view!,  fromTransformation: recognizer.scale) {                                
             imageArray[tag].transform = imageArray[tag].transform.scaledBy(x: recognizer.scale, y: recognizer.scale)                     
           }
        }

       // Execute your block whenever you need to
       myBlock()    

       if recognizer.state == .ended  {
          // call again above condition
          myBlock()
       }
}

클로저는 강력하지만 조작하기 쉽지 않은 기능이므로 자세히 읽어 보시기 바랍니다 . https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html

편집 : Grimxn 이 주석에서 지적했듯이 더 깨끗한 방법은 로컬 함수를 사용하는 것입니다.

func isParformPinch(recognizer:UIPinchGestureRecognizer, forTag tag:Int, protectedTag protact:Int){

        if protact == tag{
            return
         }

       // Declare your local function
       func myLocalFunction() {
           if isPinching(forView: imageArray[tag],inView: recognizer.view!,  fromTransformation: recognizer.scale) {                                
             imageArray[tag].transform = imageArray[tag].transform.scaledBy(x: recognizer.scale, y: recognizer.scale)                     
           }
        }

       // Execute your function whenever you need to
       myLocalFunction()    

       if recognizer.state == .ended  {
          // call again above condition
          myLocalFunction()
       }
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

GameViewController의 다른 신속한 파일에서 메서드를 호출하려면 어떻게해야합니까?

분류에서Dev

JQuery 함수에서 값을 정의한 다음 다른 함수를 호출하고 값을 사용하려면 어떻게해야합니까?

분류에서Dev

div를 호출하여 동일한 html의 다른 div 아래에 배치하려면 어떻게해야합니까?

분류에서Dev

Flask에서 뷰 함수를 호출하기 전에 데이터베이스에서 일부 데이터를로드하려면 어떻게해야합니까?

분류에서Dev

Oracle 스크립트에서 반환 코드를 호출 한 WINDOWS Batch 스크립트로 다시 전달하려면 어떻게해야합니까?

분류에서Dev

Laravel의 동일한 뷰에서 다른 레코드를 검색하거나 반환하려면 어떻게해야합니까?

분류에서Dev

동일한 확률을 유지하면서 100 개 항목에서 125 개로 변경하기 위해이 임의 코드를 유지하려면 어떻게해야합니까? 여전히 100과 동일한 비율이어야합니다.

분류에서Dev

동일한 문서를 다시 Solr 코어에 다시 색인화 / 추가 할 때 버전 충돌을 방지하려면 어떻게해야합니까?

분류에서Dev

액션 버튼은 여러 메서드를 호출하는데, 그 사이에 짧은 일시 중지를 삽입하려면 어떻게해야합니까?

분류에서Dev

한 JavaScript 파일의 변수를 다른 JS 파일에 할당하려면 어떻게해야합니까?

분류에서Dev

다른 페이지로 리디렉션하고이 새 페이지의 이벤트를 동시에 호출하려면 어떻게해야합니까?

분류에서Dev

신경망의 다른 출력보다 일부 출력에 더 많은 가중치를 부여하려면 어떻게해야합니까?

분류에서Dev

Linux / Windows에서 파일의 하위 부분을 다운로드하려면 어떻게해야합니까?

분류에서Dev

람다를 호출 할 수있는 Cloudwatch 로그 권한을 부여하려면 어떻게해야합니까?

분류에서Dev

C ++ 함수를 호출 할 때 컴파일러에서 암시 적 변환을 수행하지 않도록하려면 어떻게해야합니까?

분류에서Dev

한 뷰 컨트롤러의 메서드를 다른 뷰 컨트롤러에서 호출하려면 어떻게해야합니까?

분류에서Dev

JavaScript-다른 파일의 함수를 클래스에 추가하려면 어떻게해야합니까?

분류에서Dev

파일이 동일한 방식으로 표시되도록 소스 코드에 vim 설정을 포함하려면 어떻게해야합니까?

분류에서Dev

색인 화면에서 메일의 날짜 필드를 mutt 표시하려면 어떻게해야합니까?

분류에서Dev

색인 화면에서 메일의 날짜 필드를 mutt 표시하려면 어떻게해야합니까?

분류에서Dev

JAVA의 동일한 패키지에있는 다른 클래스의 메서드를 호출하거나 필드에 액세스하려면 어떻게해야합니까?

분류에서Dev

Wordpress의 img src에서 PHP 코드를 작동 시키려면 어떻게해야합니까?

분류에서Dev

panResponder가 이동을 시작할 때 부모 클래스에서 사용자 지정 함수를 호출하려면 어떻게해야합니까?

분류에서Dev

Django-ID를 다음 사용 가능한 번호로 이동하려면 어떻게해야합니까? (앱 외부에 레코드 추가)

분류에서Dev

일정 기간 동안 기능의 일부를 일시 중지하려면 어떻게해야합니까?

분류에서Dev

동일한 파일 시스템에서 두 폴더를 병합하려면 어떻게해야합니까?

분류에서Dev

동일한 스프레드 시트의 Excel에서 한 열을 다른 열과 일치시켜야하는 경우 어떻게해야합니까?

분류에서Dev

두 개의 동일한 커밋을 다른 해시로 병합하려면 어떻게해야합니까?

분류에서Dev

동일한 확률로 방문자에게 다른 버전의 웹 사이트를 무작위로 표시하려면 어떻게해야합니까?

Related 관련 기사

  1. 1

    GameViewController의 다른 신속한 파일에서 메서드를 호출하려면 어떻게해야합니까?

  2. 2

    JQuery 함수에서 값을 정의한 다음 다른 함수를 호출하고 값을 사용하려면 어떻게해야합니까?

  3. 3

    div를 호출하여 동일한 html의 다른 div 아래에 배치하려면 어떻게해야합니까?

  4. 4

    Flask에서 뷰 함수를 호출하기 전에 데이터베이스에서 일부 데이터를로드하려면 어떻게해야합니까?

  5. 5

    Oracle 스크립트에서 반환 코드를 호출 한 WINDOWS Batch 스크립트로 다시 전달하려면 어떻게해야합니까?

  6. 6

    Laravel의 동일한 뷰에서 다른 레코드를 검색하거나 반환하려면 어떻게해야합니까?

  7. 7

    동일한 확률을 유지하면서 100 개 항목에서 125 개로 변경하기 위해이 임의 코드를 유지하려면 어떻게해야합니까? 여전히 100과 동일한 비율이어야합니다.

  8. 8

    동일한 문서를 다시 Solr 코어에 다시 색인화 / 추가 할 때 버전 충돌을 방지하려면 어떻게해야합니까?

  9. 9

    액션 버튼은 여러 메서드를 호출하는데, 그 사이에 짧은 일시 중지를 삽입하려면 어떻게해야합니까?

  10. 10

    한 JavaScript 파일의 변수를 다른 JS 파일에 할당하려면 어떻게해야합니까?

  11. 11

    다른 페이지로 리디렉션하고이 새 페이지의 이벤트를 동시에 호출하려면 어떻게해야합니까?

  12. 12

    신경망의 다른 출력보다 일부 출력에 더 많은 가중치를 부여하려면 어떻게해야합니까?

  13. 13

    Linux / Windows에서 파일의 하위 부분을 다운로드하려면 어떻게해야합니까?

  14. 14

    람다를 호출 할 수있는 Cloudwatch 로그 권한을 부여하려면 어떻게해야합니까?

  15. 15

    C ++ 함수를 호출 할 때 컴파일러에서 암시 적 변환을 수행하지 않도록하려면 어떻게해야합니까?

  16. 16

    한 뷰 컨트롤러의 메서드를 다른 뷰 컨트롤러에서 호출하려면 어떻게해야합니까?

  17. 17

    JavaScript-다른 파일의 함수를 클래스에 추가하려면 어떻게해야합니까?

  18. 18

    파일이 동일한 방식으로 표시되도록 소스 코드에 vim 설정을 포함하려면 어떻게해야합니까?

  19. 19

    색인 화면에서 메일의 날짜 필드를 mutt 표시하려면 어떻게해야합니까?

  20. 20

    색인 화면에서 메일의 날짜 필드를 mutt 표시하려면 어떻게해야합니까?

  21. 21

    JAVA의 동일한 패키지에있는 다른 클래스의 메서드를 호출하거나 필드에 액세스하려면 어떻게해야합니까?

  22. 22

    Wordpress의 img src에서 PHP 코드를 작동 시키려면 어떻게해야합니까?

  23. 23

    panResponder가 이동을 시작할 때 부모 클래스에서 사용자 지정 함수를 호출하려면 어떻게해야합니까?

  24. 24

    Django-ID를 다음 사용 가능한 번호로 이동하려면 어떻게해야합니까? (앱 외부에 레코드 추가)

  25. 25

    일정 기간 동안 기능의 일부를 일시 중지하려면 어떻게해야합니까?

  26. 26

    동일한 파일 시스템에서 두 폴더를 병합하려면 어떻게해야합니까?

  27. 27

    동일한 스프레드 시트의 Excel에서 한 열을 다른 열과 일치시켜야하는 경우 어떻게해야합니까?

  28. 28

    두 개의 동일한 커밋을 다른 해시로 병합하려면 어떻게해야합니까?

  29. 29

    동일한 확률로 방문자에게 다른 버전의 웹 사이트를 무작위로 표시하려면 어떻게해야합니까?

뜨겁다태그

보관