중첩 매개 변수화 된 클로저 인수 예외

카를로스

사용하여 중첩 된 애니메이션 세트를 수행하려고 UIView.animateWithDuration하지만 사용 하는 클로저 반환 매개 변수에 관계없이 예외가 발생하는 것 같습니다.

'(NSTimeInterval, delay : NSTimeInterval, options : UIViewAnimationOptions, animations : ()-> Void, complete : (Bool)-> Void)'유형의 인수 목록으로 'animateWithDuration'을 호출 할 수 없습니다.

이것은 불쾌한 기능입니다.

func animateLikeButton(button: UIButton?)
{
    button?.userInteractionEnabled = false;

    let pixelsToScale = 9.0;
    let pixelsToShrink = 4.0;

    let buttonFrame = button?.frame

    // Big
    let scaleOriginX = Double(buttonFrame!.minX) - pixelsToScale / 2.0
    let scaleOriginY = Double(buttonFrame!.minY) - pixelsToScale / 2.0
    let scaleSizeX = Double(buttonFrame!.width) + pixelsToScale
    let scaleSizeY = Double(buttonFrame!.height) + pixelsToScale

    // Small
    let shrinkOriginX = Double(buttonFrame!.minX) + pixelsToScale / 2.0
    let shrinkOriginY = Double(buttonFrame!.minY) + pixelsToScale / 2.0
    let shrinkSizeX = Double(buttonFrame!.width) - pixelsToScale
    let shrinkSizeY = Double(buttonFrame!.height) - pixelsToScale

    UIView.animateWithDuration(NSTimeInterval(0.4), delay:NSTimeInterval(0), options: UIViewAnimationOptions.CurveEaseInOut,
        animations:
        {
            () -> Void in
            button?.frame = CGRect(origin: CGPoint(x: scaleOriginX, y: scaleOriginY), size: CGSize(width: scaleSizeX, height: scaleSizeY))
        },
        completion:
        {
            (finished: Bool) -> Void in
            UIView.animateWithDuration(NSTimeInterval(0.2), delay:NSTimeInterval(0.1), options: UIViewAnimationOptions.CurveEaseInOut,
                animations:
                {
                    () -> Void in
                    button?.frame = CGRect(origin: CGPoint(x: shrinkOriginX, y: shrinkOriginY), size: CGSize(width: shrinkSizeX, height: shrinkSizeY))
                },
                completion:
                {
                    (finished: Bool) -> Void in
                    UIView.animateWithDuration(NSTimeInterval(0.2), delay:NSTimeInterval(0), options: UIViewAnimationOptions.CurveEaseInOut,
                        animations:
                        {
                            () -> Void in
                            button?.frame = buttonFrame!
                        },
                        completion:
                        {
                            (finished: Bool) -> Void in
                            button?.userInteractionEnabled = true
                        }
                    )
                }
            )
        }
    )
}

솔직히 말해서 나는 클로저 리턴 매개 변수 (옵션 유무에 관계없이)에 대해 가능한 모든 조합을 시도했지만 운이 없었다. 예를 들면 :

(_) -> Void in
(finished: Bool) in
(finished: Bool) -> bool in
finished in
_ in

내가 시도해 볼 제안이 있습니까?

카를로스

문제는 모든 명명 된 매개 변수가 필요한 것은 아니며 중첩에 따라 중괄호와 괄호가 변경된다는 것입니다.

UIView.animateWithDuration(NSTimeInterval(0.4), delay: NSTimeInterval(0.0), options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in
        button?.frame = CGRect(origin: CGPoint(x: scaleOriginX, y: scaleOriginY), size: CGSize(width: scaleSizeX, height: scaleSizeY))
    }) { (finished) -> Void in
        UIView.animateWithDuration(NSTimeInterval(0.2), delay: NSTimeInterval(0.1), options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in
            button?.frame = CGRect(origin: CGPoint(x: shrinkOriginX, y: shrinkOriginY), size: CGSize(width: shrinkSizeX, height: shrinkSizeY))
        }, completion: { (finished) -> Void in
            UIView.animateWithDuration(NSTimeInterval(0.2), delay: NSTimeInterval(0.0), options: UIViewAnimationOptions.CurveEaseInOut, animations: { () -> Void in
                button?.frame = buttonFrame!
            }, completion: { (finished) -> Void in
                button?.userInteractionEnabled = true
            })
        })
    }

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Rails : 중첩 된 속성 내부의 배열 열이 잘못된 인수 개수를 매개 변수로 지정 (주어진 경우 0, 예상 1..2)

분류에서Dev

정의 된 매개 변수로 중첩 된 정의 C ++

분류에서Dev

중첩 된 함수를 매개 변수로 전달

분류에서Dev

중첩 된 자원 ID 매개 변수

분류에서Dev

Rails-중첩 된 Strong 매개 변수

분류에서Dev

중첩 된 기능으로 매개 변수 전달

분류에서Dev

Rails 4-중첩 된 경로 및 양식 매개 변수

분류에서Dev

해시 매개 변수로 제공된 중첩 속성 배열

분류에서Dev

ajax 매개 변수 URL이있는 레일 : 중첩 된 경로

분류에서Dev

pl / sql에 중첩 된 함수가있는 프로 시저의 예외 처리

분류에서Dev

pl / sql에 중첩 된 함수가있는 프로 시저의 예외 처리

분류에서Dev

JS : 함수에 직접 전달 된 인수를 중첩 함수의 매개 변수로 사용

분류에서Dev

jQuery는 함수 매개 변수를 중첩 된 함수로 전달합니다.

분류에서Dev

다른 매개 변수에 따라 중첩 된 템플릿 클래스 인스턴스를 기본 템플릿 매개 변수로 설정하는 방법

분류에서Dev

http.get의 매개 변수로 중첩 된 객체 보내기

분류에서Dev

레일에 루비로 중첩 된 배열 매개 변수 보내기

분류에서Dev

ROR : 카운터 캐시, has_many thougth, 중첩 된 매개 변수로 삭제

분류에서Dev

중첩 된 TabNavigator가 매개 변수를 경로에 전달하지 않음

분류에서Dev

매개 변수화 된 개체를 변수로 확인할 수 없습니다.

분류에서Dev

C ++에서 상위 클래스의 템플릿 매개 변수로 중첩 된 클래스

분류에서Dev

제네릭 클래스에 중첩 된 클래스를 C #의 형식 매개 변수로 사용

분류에서Dev

매개 변수화 된 조치에서 예외 행 번호 가져 오기

분류에서Dev

매크로 매개 변수가 허용 된 매개 변수 중 하나인지 확인 하시겠습니까?

분류에서Dev

중첩 된 명명 된 매개 변수의 기본값 유지

분류에서Dev

Nullable DateTime 매개 변수로 인해 예외가 발생 함

분류에서Dev

Ninject-중첩 된 바인딩에서 매개 변수 바인딩

분류에서Dev

중첩 된 템플릿 매개 변수로 클래스를 작성하는 방법은 무엇입니까?

분류에서Dev

명명 된 매개 변수가있는 모든 예외

분류에서Dev

중첩 된 구조체 필드 경로를 매크로 매개 변수로 전달

Related 관련 기사

  1. 1

    Rails : 중첩 된 속성 내부의 배열 열이 잘못된 인수 개수를 매개 변수로 지정 (주어진 경우 0, 예상 1..2)

  2. 2

    정의 된 매개 변수로 중첩 된 정의 C ++

  3. 3

    중첩 된 함수를 매개 변수로 전달

  4. 4

    중첩 된 자원 ID 매개 변수

  5. 5

    Rails-중첩 된 Strong 매개 변수

  6. 6

    중첩 된 기능으로 매개 변수 전달

  7. 7

    Rails 4-중첩 된 경로 및 양식 매개 변수

  8. 8

    해시 매개 변수로 제공된 중첩 속성 배열

  9. 9

    ajax 매개 변수 URL이있는 레일 : 중첩 된 경로

  10. 10

    pl / sql에 중첩 된 함수가있는 프로 시저의 예외 처리

  11. 11

    pl / sql에 중첩 된 함수가있는 프로 시저의 예외 처리

  12. 12

    JS : 함수에 직접 전달 된 인수를 중첩 함수의 매개 변수로 사용

  13. 13

    jQuery는 함수 매개 변수를 중첩 된 함수로 전달합니다.

  14. 14

    다른 매개 변수에 따라 중첩 된 템플릿 클래스 인스턴스를 기본 템플릿 매개 변수로 설정하는 방법

  15. 15

    http.get의 매개 변수로 중첩 된 객체 보내기

  16. 16

    레일에 루비로 중첩 된 배열 매개 변수 보내기

  17. 17

    ROR : 카운터 캐시, has_many thougth, 중첩 된 매개 변수로 삭제

  18. 18

    중첩 된 TabNavigator가 매개 변수를 경로에 전달하지 않음

  19. 19

    매개 변수화 된 개체를 변수로 확인할 수 없습니다.

  20. 20

    C ++에서 상위 클래스의 템플릿 매개 변수로 중첩 된 클래스

  21. 21

    제네릭 클래스에 중첩 된 클래스를 C #의 형식 매개 변수로 사용

  22. 22

    매개 변수화 된 조치에서 예외 행 번호 가져 오기

  23. 23

    매크로 매개 변수가 허용 된 매개 변수 중 하나인지 확인 하시겠습니까?

  24. 24

    중첩 된 명명 된 매개 변수의 기본값 유지

  25. 25

    Nullable DateTime 매개 변수로 인해 예외가 발생 함

  26. 26

    Ninject-중첩 된 바인딩에서 매개 변수 바인딩

  27. 27

    중첩 된 템플릿 매개 변수로 클래스를 작성하는 방법은 무엇입니까?

  28. 28

    명명 된 매개 변수가있는 모든 예외

  29. 29

    중첩 된 구조체 필드 경로를 매크로 매개 변수로 전달

뜨겁다태그

보관