說說今天遇到的UIKit力學問題

今天學到UIKit Dynamic的

Adding Gravity to Your UI Components 

想要實現下圖的效果

uikit-dynamics-collider.gif

結果方塊一直是垂直下落不旋轉

uikit-dynamics-gravity.gif

- (void)viewDidAppear:(BOOL)animated

{

    [superviewDidAppear:animated];

    

   

    self.squareView = [[UIViewalloc]initWithFrame:CGRectMake(0.0f,0.0f,100.0f, 100.0f)];

    self.squareView.backgroundColor = [UIColorcyanColor];

    self.squareView.center =self.view.center;

    [self.viewaddSubview:self.squareView];

    

   

    self.animator = [[UIDynamicAnimatoralloc]initWithReferenceView:self.view];

    self.squareView.transform = CGAffineTransformRotate(self.squareView.transform,45);

    

    UIGravityBehavior *gravity = [[UIGravityBehavioralloc]initWithItems:@[self.squareView]];

    [self.animatoraddBehavior:gravity];

    

    UICollisionBehavior *collision = [[UICollisionBehavioralloc]initWithItems:@[self.squareView]];

    

   collision.translatesReferenceBoundsIntoBoundary =YES;

    [self.animatoraddBehavior:collision];

}


問題解決方式:是因爲我錯誤的把

self.squareView.transform = CGAffineTransformRotate(self.squareView.transform,45);

放在了

 UIGravityBehavior *gravity = [[UIGravityBehavior alloc]initWithItems:@[self.squareView]];

[self.animator addBehavior:gravity];

的後面,找了半天,經朋友提醒才知道問題是這樣的,應該是將圖片在經重力下落前就旋轉



總結:有時候邏輯上出了問題,就很難找出問題所在了


發佈了15 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章