2016-11-26 5 views
0

私はSwiftには新しく、私が学んだようにインタラクティブな本を作成しようとしています。私はCATransform3DMakeRotationを使ってカバーエフェクトを作成しました。アニメーション中のサブビュースタッキング

enter image description here



あなたが見ることができるように、私はビューを積み重ねたときに、問題が来ます。裏表紙を追加しようとすると、アニメーションのトリガに応じてスタックの順序が失われます。これまで

マイコード:フィードバック任意およびすべての

let bookcontainerwidth = 400 
let bookcontainerheight = 200 
let bookcoverwidth = bookcontainerwidth/2 
let bookcoverheight = bookcontainerheight 

let flipspeed = 2.0 

//container 
let container = UIView(frame: CGRect(x: 0, y: 0, width: bookcontainerwidth, height: bookcontainerheight)) 
container.backgroundColor = UIColor.white 

//back cover 
let backcover = UIButton(frame: CGRect(x: bookcontainerwidth/2, y: 0, width: bookcoverwidth, height: bookcoverheight)) 
backcover.backgroundColor = UIColor.darkGray 
backcover.setTitle("Back", for: UIControlState.normal) 

//front cover 
let frontcover = UIButton(frame: CGRect(x: bookcontainerwidth/2, y: 0, width: bookcoverwidth, height: bookcoverheight)) 
frontcover.backgroundColor = UIColor.gray 
frontcover.addTarget(receiver, action: #selector(opencover), for: .touchUpInside) 
frontcover.setTitle("Front", for: UIControlState.normal) 
frontcover.layer.anchorPoint = CGPoint(x: 0.0, y: 0.5); 
frontcover.center = CGPoint(x:bookcoverwidth, y: bookcoverheight/2); 

container.addSubview(backcover) 
container.addSubview(frontcover) 


func opencover(){ 

    UIView.animate(withDuration: flipspeed){() -> Void in 

     //these do not work 
     //container.bringSubview(toFront: frontcover) 
     //container.sendSubview(toBack: backcover) 

     frontcover.layer.transform = CATransform3DMakeRotation(CGFloat(M_PI), 0.0, 1.0, 0.0); 
    } 

} 

オープン。私が言ったように私はノブです。たとえば、UIButtonを使用していて、カバーをクリック可能にしたいとします。それが正しいかどうかわからない)

ありがとう!

答えて

関連する問題