Untitled

 avatar
unknown
plain_text
a month ago
2.1 kB
5
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