Untitled
unknown
plain_text
9 months ago
2.1 kB
8
Indexable
import UIKit
class ViewController: UIViewController {
private var frontImageView: UIImageView!
private var backImageView: UIImageView!
private var rotationSlider: UISlider!
private var containerView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
containerView = UIView(frame: CGRect(x: 50, y: 200, width: 250, height: 160))
containerView.layer.sublayerTransform.m34 = -1.0 / 500.0 // Thêm chiều sâu 3D
view.addSubview(containerView)
frontImageView = UIImageView(image: UIImage(named: "pika"))
frontImageView.frame = containerView.bounds
frontImageView.contentMode = .scaleAspectFill
containerView.addSubview(frontImageView)
// Mặt sau (ẩn ban đầu)
backImageView = UIImageView(image: UIImage(named: "pika")) // Ảnh mặt sau
backImageView.frame = containerView.bounds
backImageView.contentMode = .scaleAspectFill
backImageView.isHidden = true
containerView.addSubview(backImageView)
// Tạo slider để xoay
rotationSlider = UISlider(frame: CGRect(x: 40, y: view.bounds.height - 100, width: view.bounds.width - 80, height: 30))
rotationSlider.minimumValue = 0
rotationSlider.maximumValue = 360
rotationSlider.value = 0
rotationSlider.addTarget(self, action: #selector(handleSliderChange(_:)), for: .valueChanged)
view.addSubview(rotationSlider)
}
@objc private func handleSliderChange(_ sender: UISlider) {
let angle = CGFloat(sender.value) * .pi / 180
var transform = CATransform3DIdentity
transform.m34 = -1.0 / 500.0
transform = CATransform3DRotate(transform, angle, 0, 1, 0)
containerView.layer.transform = transform
// Đổi ảnh khi góc vượt quá 90° và 270°
if sender.value > 90 && sender.value < 270 {
frontImageView.isHidden = true
backImageView.isHidden = false
} else {
frontImageView.isHidden = false
backImageView.isHidden = true
}
}
}Editor is loading...
Leave a Comment