调整UILabel的大小,没有质量损失

Joh*_*110 8 cocoa-touch ios swift

我希望能够使用a来调整UILabel的大小UIPinchGesture,而不会有质量损失.目前我可以调整它,虽然它变得非常模糊.

这是我的代码

label = UILabel(frame:CGRectMake(0,100,300,50))
    label.text = "Hellow World"
    label.textColor = UIColor.blueColor()
    label.font = UIFont(name: "HelveticaNeue-Bold", size: self.label.frame.height)
    self.view.addSubview(label)

    self.resizeRecognizer = UIPinchGestureRecognizer(target: self, action: Selector("handleScale:"))
    self.rotateRecognizer = UIRotationGestureRecognizer(target: self, action: Selector("handleRotate:"))

    label.userInteractionEnabled = true
    label.addGestureRecognizer(self.resizeRecognizer)
Run Code Online (Sandbox Code Playgroud)

这是我的手势识别器

func handleScale(recognizer: UIPinchGestureRecognizer)
{
    recognizer.view!.transform = CGAffineTransformScale(recognizer.view!.transform,
        recognizer.scale, recognizer.scale)
    recognizer.scale = 1
        recognizer.view!.frame = CGRectMake(recognizer.view!.frame.minX, recognizer.view!.frame.minY, recognizer.view!.frame.width, recognizer.view!.frame.height)

    println(recognizer.view!.frame)
    println(self.label.font.fontWithSize(recognizer.view!.frame.height))
    println(self.label.frame)

}
Run Code Online (Sandbox Code Playgroud)

这里需要做的是当缩放标签框架时,文本的大小也需要改变.因此,当我更改框架时,字体大小应该更改label.font = UIFont(name: "HelveticaNeue-Bold", size: self.label.frame.height)

这就是我要来的

<UICTFont: 0x7ffb39e17ba0> font-family: "Helvetica Neue"; font-weight: bold; font-style: normal; font-size: 578.77pt
<UICTFont: 0x7ffb3ca03ed0> font-family: "Helvetica Neue"; font-weight: bold; font-style: normal; font-size: 594.29pt
Run Code Online (Sandbox Code Playgroud)

字体大小确实调整框架调整,我已经尝试从一开始就使字体大小变得清晰.我的想法是,实际标签没有再次重新渲染.有人知道发生了什么或如何解决它?

编辑:

顶部的文字是我想在重新缩放后发生的事情,底部的文字是正在发生的事情

Top =正确,Botton =不正确

我实现这一点的方式是我创建了一个新标签,其中包含旧标签的大小,然后将其添加到子视图中,我希望能够在重新缩放时执行此操作,如果这有任何意义的话

gab*_*buh 0

我认为您没有更新字体大小,fontWithSize 返回您应该分配给标签的字体。

  func handleScale(recognizer: UIPinchGestureRecognizer)
{
    self.test.transform = CGAffineTransformScale(self.test.transform, recognizer.scale, recognizer.scale)
    recognizer.scale = 1


    println(recognizer.view!.frame)


    self.test.font = self.test.font.fontWithSize(recognizer.view!.frame.height)
    println(self.test.font)
    println(self.test.frame)


}
Run Code Online (Sandbox Code Playgroud)