class RotateTextViewVC: UIViewController {
let tv = UITextView()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .systemYellow
tv.isScrollEnabled = false
tv.text = "This is some sample text for the text view."
tv.font = .systemFont(ofSize: 24.0, weight: .regular)
// add a slider to rotate the text view
let slider = UISlider()
slider.addTarget(self, action: #selector(sliderChanged(_:)), for: .valueChanged)
slider.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(slider)
tv.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(tv)
let g = view.safeAreaLayoutGuide
NSLayoutConstraint.activate([
slider.topAnchor.constraint(equalTo: g.topAnchor, constant: 40.0),
slider.leadingAnchor.constraint(equalTo: g.leadingAnchor, constant: 20.0),
slider.trailingAnchor.constraint(equalTo: g.trailingAnchor, constant: -20.0),
tv.centerXAnchor.constraint(equalTo: view.centerXAnchor),
tv.centerYAnchor.constraint(equalTo: view.centerYAnchor),
tv.widthAnchor.constraint(equalToConstant: 200.0),
])
slider.value = 0.5
}
@objc func sliderChanged(_ sender: UISlider) {
let deg: CGFloat = (CGFloat(sender.value) - 0.5) * 720.0
let radians = deg * .pi / 180.0
tv.layer.transform = CATransform3DRotate(CATransform3DIdentity, radians, 0, 0, 1)
}
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎