2016-04-28 120 views
2

我有一个UILabel;当我使用UIPinchGestureRecognizer进行放大时,文字变得模糊。 beforeUILabel使用UIPinchGestureRecognizer模糊文本

after

我用CGAffineTransformScale我的代码

self.myLabel.transform = CGAffineTransformScale(self.myLabel.transform, pinchRecognizer.scale, pinchRecognizer.scale);

如何解决呢?

+0

你做了一个变换,它扩展了你的标签,如果你想让它变得更大而不丢失质量,你需要通过约束对它进行动画处理。 –

+0

感谢您的评论,如果您不介意,可否举个小例子,我是IOS编程的noob。非常感谢您 –

+0

改进的语法;纠正了“标签”的拼写错误。 – Prune

回答

0

我发现如何解决这个问题,这很容易。

给予规模:

CGFloat scale = self.myLable.transform.a *pinchRecognizer.scale *[UIScreen mainScreen].scale; 

这一个 - (self.myLable.transform.a)返回当前的比例因子。

self.myLable.transform = CGAffineTransformScale(self.myLable.transform, pinchRecognizer.scale, pinchRecognizer.scale); 
[self.myLable setContentScaleFactor:scale]; 

完成, 快乐编码!

1

经过很多尝试和失败。我找到了解决方案。

@IBAction func handlePinch(recognizer : UIPinchGestureRecognizer) { 
    var pinchScale = recognizer.scale 
    signatureLabel.layer.contentsScale = UIScreen.main.scale + pinchScale; 
    signatureLabel.transform = signatureLabel.transform.scaledBy(x: pinchScale, y:pinchScale) 
    pinchScale = round(pinchScale * 1000)/1000.0 

    if recognizer.state == .changed { 
     signatureLabel.font = UIFont(name: signatureLabel.font.fontName, size: signatureLabel.font.pointSize * pinchScale) 
     pinchScale = recognizer.scale 
    } 
    recognizer.scale = 1 
} 

虽然如果您不更新该UILabel的约束条件,它不能正常工作。所以,在故事板中,我添加了垂直水平中心约束到我的标签。然后,创建了我的课堂。并在我的handlePan方法我做了:

@IBAction func handlePan(recognizer:UIPanGestureRecognizer) { 
    let translation = recognizer.translation(in: recognizer.view) 
    self.signatureLabel.center = CGPoint(x:self.signatureLabel.center.x + translation.x, 
             y:self.signatureLabel.center.y + translation.y) 
    signatureLabelCenterConstraint.constant = signatureLabelCenterConstraint.constant + translation.y 
    signatureLabelCenterXConstraint.constant = signatureLabelCenterXConstraint.constant + translation.x 
    signatureLabel.setNeedsLayout() 
    recognizer.setTranslation(.zero, in: recognizer.view) 
} 

我希望能帮助大家!