Untitled
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