首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >要在文本上缩放吗?

要在文本上缩放吗?
EN

Stack Overflow用户
提问于 2017-09-28 19:15:38
回答 1查看 1.7K关注 0票数 0

在iOS应用程序中,是否可以对文本进行挤压缩放(甚至双击进行缩放)?我已经为工作做了一个小的应用程序,基本上是一个紧急联系人的列表,并想添加功能,使文本放大缩放。

我通过创建一个按钮来以编程方式增加字体大小,但在视图控制器之间来回传递数据时遇到了问题。

我认为,如果能够实现,夹点缩放将是一个更容易的解决方案。谷歌我已经找到了缩放图像的例子,但没有关于缩放文本的例子。我见过在safari中使用webkit实现它,但还没有找到任何如何实现它的编码示例。

我非常感谢任何意见,即使只是说这是不可能的,至少我可以寻找另一种解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-01 07:55:41

这段简单的代码将在收缩时放大或缩小myTextView中的文本。Swift 3

代码语言:javascript
复制
@IBOutlet weak var myTextView: UITextView!
var pinchGesture = UIPinchGestureRecognizer()

override func viewDidLoad() {
    super.viewDidLoad()
    pinchGesture = UIPinchGestureRecognizer(target: self, action:#selector(pinchText(sender:)))
    myTextView.addGestureRecognizer(pinchGesture)
}

@objc func pinchText(sender: UIPinchGestureRecognizer) {
    var pointSize = myTextView.font?.pointSize
    pointSize = ((sender.velocity > 0) ? 1 : -1) * 1 + pointSize!;
    myTextView.font = UIFont( name: "arial", size: (pointSize)!)
}

更新-如果需要保留格式化文本:

代码语言:javascript
复制
@objc func pinchText(sender: UIPinchGestureRecognizer) {
    var pointSize = CGFloat(UserDefaults.standard.float(forKey: "fontSize"))
    pointSize = ((sender.velocity > 0) ? 1 : -1) * 1 + pointSize!;
    UserDefaults.standard.set(pointSize, forKey: "fontSize")
    UserDefaults.standard.synchronize()

    let formattedText = NSMutableAttributedString.init(attributedString: myTextView!.attributedText)
    formattedText.addAttribute(NSAttributedStringKey.font, value: UIFont.systemFont(ofSize: pointSize), range: NSRange(location: 0, length: formattedText.length))
    myTextView.attributedText = formattedText
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46467777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档