1

애니메이션을 표시하는 UIImageView를 사용하여 오늘의 위젯 확장을 작성하고 싶습니다.스위프트 : 오늘 애니메이션이있는 위젯

내 코드는 다음과 같습니다.

override func viewDidLoad() { 
     super.viewDidLoad() 
     layoutComponents() 
     imageView.startAnimating() 
    } 

func layoutComponents() {   
    self.extensionContext?.widgetLargestAvailableDisplayMode = NCWidgetDisplayMode.expanded 

    self.view.backgroundColor = UIColor.blue 

    let images = [UIImage(named:"1.png"), UIImage(named:"2.png"), UIImage(named:"3.png")] 

    imageView.frame = CGRect(x: 0, y: 0, width: self.extensionContext!.widgetMaximumSize(for: .expanded).width, height: self.extensionContext!.widgetMaximumSize(for: .expanded).height) 
    imageView.animationImages = images 
    imageView.image = images[0] 
    imageView.animationDuration = 1.0 
    imageView.animationRepeatCount = 0 
    self.view.addSubview(imageView) 

    debugPrint("Done LayoutComponents") 
    } 

코드가 성공적으로 컴파일되었습니다. 그러나 위젯을로드 할 수 없으면 iPhone에서 실행할 때 위젯에 "로드 할 수 없습니다"라는 메시지가 표시됩니다. 그리고 디버그 인쇄에서 "Done LayoutComponents"를 인쇄합니다. "프로그램 종료 코드 : 0"이라는 줄이 있습니다.

내가 뭘 잘못했는지 실마리가 있습니까? 감사. 내가) viewWillAppear() viewDidAppear 또는 widgetPerformUpdate (하나로) 코드 imageView.startAnimating을 (넣을 때마다 종료됩니다

참고하고 문제와 그 "로드 할 수 없습니다."

제 질문은 실제로 Today Extension이 UIImageView에 애니메이션을 적용하는 것입니까?

+0

는 + 복사 질문에 디버거의 결과를 붙여주세요. 위로 스크롤하면 왜 추락했는지에 대해 좀 더 많은 정보를 찾을 수 있습니다. –

+0

크래시가 발생하지 않았습니다. 2017-05-10 22 : 34 : 26.597307 + 0800 PetWidget [9632 : 3946653] 활성 애니메이션 블록이 없습니다! 종료 코드로 프로그램을 종료했습니다. 0 그게 전부입니다. – user6539552

+0

위젯의 경우로드 할 수 없습니다. 또한 이미지가 있는지 확인하십시오. –

답변

0

imageView.startAnimating()viewDidLoad 대신 viewDidAppear에 속합니다.보기가 나타나기 전에 아무 것도 움직이지 않기 때문에.

는 또한 "사용자 선호 명시 크기"스토리 보드에서 비활성화되어 있는지 확인 (Today's extension iOS10 Show More/Less)

+0

변경하지 않고 코드를 viewDidAppear로 변경하십시오. – user6539552

+0

http://www.anhuiyouxi.com/today-s-extension-ios10-show-more-less/ 이 정보가 도움이됩니까? 그들은 당신과 같은 오류를 가지고 있습니다 :'활성 애니메이션 블록 없음 ' –

+0

광산은 항상 확장 모드입니다. 모드 변경으로 결과가 변경되지는 않습니다. ( – user6539552