Reputation: 1
What i want to achieve: CardBackImage is a subview of the ViewController. The view is placed somewhere (invisible with alpha = 0), i want to relocate it on top of deckPile and make it visible.
myCode:
let deckFrame = self.view.convert(deckPileView.frame, from:
deckPileView.superview)
print("deck frame is: \(deckFrame)")
fakeCardBack.frame = deckFrame
UIViewPropertyAnimator.runningPropertyAnimator(withDuration: 2, delay: 0, options: [], animations: { [self] in fakeCardBack.alpha = 1 }, completion: { _ in print("its works?") })
The problem with this code: The card is in the original position and not on deckPile position.
Please help.
Upvotes: 0
Views: 226
Reputation: 127
It's not easy to do this directly with UIImage
, but you can easily place the image inside a UIImageView
and can set one view as a subview of another - since they are simply subclasses of UIView
.
Here's some sample code to pin a view on top of another:
extension UIView {
func pin(subview: UIView) {
subview.translatesAutoresizingMaskIntoConstraints = false
subview.leadingAnchor.constraint(equalTo: leadingAnchor).isActive = true
subview.trailingAnchor.constraint(equalTo: trailingAnchor).isActive = true
subview.topAnchor.constraint(equalTo: topAnchor).isActive = true
subview.bottomAnchor.constraint(equalTo: bottomAnchor).isActive = true
}
Upvotes: 1