2
私はプロジェクトでユーザーがチェスをプレイできるようにしています。私はボードを表す親ビューを持ち、各四角形はサブビューとしてボードに追加されます。チェスピースはUIImageViewであり、サブビューとして正方形に追加されます。UIImageViewをサブビューから親ビューにアニメーション化する
occupyingPieceImageView = UIImageView(frame: CGRectMake(0, 0, size, size))
self.addSubview(occupyingPieceImageView)
私は他に1平方から作品の位置を変更したいチェスの動きをアニメーション化するために、私は手段はUIImageViewのフレームを変更することを理解し、私は、フレームは、それが唯一の範囲内にあるか、わかりません親ビュー(四角形)。これはうまくいかない:
func move(destSquare: Square){
var imgView = self.occupyingPieceImageView
var thisPiece = self.piece
UIView.animateWithDuration(3, animations: {
self.clearPiece()
imgView.frame = destSquare.frame
})
destSquare.setPiece(thisPiece)
}
私もそれを検討していますが、そのためにはデザインを変更する必要があります。他の選択肢はありますか? – phuong
できることは、すべての四角のclipsToBoundsをfalseに設定することです。次に、ビューの外にある原点を持つフレームを使用して動きをアニメートできます(たとえば(-100、-100、50、50))。アニメーションが終了したら、補完ブロックで、新しい四角形の座標を再計算して、removeFromSuperViewを実行して新しい四角形に即座にサブビューを追加することができます。これは本当に非効率的ですが、うまくいくはずです。 – Terminus