Я использовал pinchGesture
для увеличения и уменьшения textView
, используя приведенный ниже код.
добавлено pinchGesture
к textView
let pinchGesture = UIPinchGestureRecognizer(target: self, action: #selector(self.handlePinch))
pinchGesture.delegate = self
view.addGestureRecognizer(pinchGesture)
delagate
@IBAction func handlePinch(recognizer:UIPinchGestureRecognizer) {
if let view = recognizer.view as? UITextView {
view.transform = view.transform.scaledBy(x: recognizer.scale, y: recognizer.scale)
recognizer.scale = 1
}
}
Результат
Вот возможное решение, которое я применил, но все еще не смог найти идеальное решение.
@IBAction func handlePinch(recognizer:UIPinchGestureRecognizer) {
if let textView = recognizer.view as? UITextView {
let font = textView.font!
var pointSize = font.pointSize
let fontName = font.fontName
pointSize = ((recognizer.velocity > 0) ? 1 : -1) * 1 + pointSize;
if (pointSize < 13) {
pointSize = 13
}
if (pointSize > 100) {
pointSize = 100
}
textView.font = UIFont(name: fontName, size: pointSize)
}
}
Результат
Используя вышеуказанное решение, я успешно могу увеличить размер шрифта, но рамка textView не обновляется, поэтому текст обрезается, потому что рамка textView меньше.
Ожидаемый результат
Шрифт будет увеличен, а также будет обновляться рамка, поэтому она будет выглядеть как простое увеличение и уменьшение масштаба, но без размытия.
В поисках наилучшего решения для увеличения размера шрифта с помощью фрейма, как instagram и Snapchat .
Спасибо.