【发布时间】:2015-12-27 09:38:25
【问题描述】:
我希望能够使用UIPinchGesture 调整 UILabel 的大小,而不会造成质量损失。目前我可以调整它的大小,虽然它变得非常模糊。
这是我的代码
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)
这是我的手势识别器
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)
}
这里需要发生的是,当标签框架被缩放时,文本的大小也需要改变。
所以当我改变框架时,字体大小应该改变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
字体大小确实会随着框架的调整而调整,我已经尝试从一开始就使字体大小变得清晰。 我认为正在发生的是,实际标签不会再次重新呈现。 有谁知道发生了什么或如何解决它?
编辑:
顶部的文字是我想在重新缩放后发生的事情,底部的文字是正在发生的事情
我实现这一点的方法是创建一个具有旧标签大小的新标签,然后将其添加到子视图中,如果这有意义的话,我希望能够在重新缩放时执行此操作
【问题讨论】:
-
尝试将UILabel的`adjustsFontSizeToFitWidth'属性设置为true,不要手动更改字体大小。
-
@gabuh label.adjustsFontSizeToFitWidth = true;什么都不做
标签: ios cocoa-touch swift