0
私はSwiftには新しく、私が学んだようにインタラクティブな本を作成しようとしています。私はCATransform3DMakeRotationを使ってカバーエフェクトを作成しました。アニメーション中のサブビュースタッキング
あなたが見ることができるように、私はビューを積み重ねたときに、問題が来ます。裏表紙を追加しようとすると、アニメーションのトリガに応じてスタックの順序が失われます。これまで
マイコード:フィードバック任意およびすべての
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を使用していて、カバーをクリック可能にしたいとします。それが正しいかどうかわからない)
ありがとう!