ios - 增加捏合手势中的字体大小

标签 ios swift uilabel

我有一个 UILabel,其字体大小要在捏合手势 iOS swift 上增加。我可以增加字体大小,但 View 有问题。认为 sizeToFit() 根据需要增加高度和宽度,但它没有反射(reflect)在 View 上,即标签在 View 中保持不变。请帮我随着字体大小的增加而增加标签的大小。

 @IBAction func increaseTextFont(sender: UIPinchGestureRecognizer) {
        var pinchScale = sender.scale
        pinchScale = round(pinchScale * 1000) / 1000.0

        if (pinchScale < 1) {
            testLabel.font = UIFont( name: "arial", size: testLabel.font.pointSize - pinchScale)
        }
        else{
            testLabel.font = UIFont( name: "arial", size: testLabel.font.pointSize + pinchScale)
        }
testLabel.frame.height * pinchScale))
        testLabel.frame.size.height *= pinchScale
        testLabel.frame.size.width *= pinchScale
        self.testLabel.layoutIfNeeded()
        print(testLabel.frame.size.height)
        print(testLabel.frame.size.width)

    }

最佳答案

出于演示目的,我做了一个测试演示,您可以看到相同的结果,

enter image description here

标签的约束如下,

enter image description here

您可能需要根据您必须设计的 UI 或要求更改约束,只需确保您没有设置标签的高度约束并且如果您必须使标签多行,则相应地设置约束和标签属性。

捏合手势的代码,

@IBOutlet 弱变量 labelTest:UILabel!

 @IBAction func increaseTextFont(sender: UIPinchGestureRecognizer) {
    
    var pinchScale = sender.scale
    pinchScale = round(pinchScale * 1000) / 1000.0
    
    if (pinchScale < 1) {
        labelTest.font = UIFont( name: "arial", size: labelTest.font.pointSize - pinchScale)
    }
    else{
        labelTest.font = UIFont( name: "arial", size: labelTest.font.pointSize + pinchScale)
    }
}

您还需要根据要求限制文本的增长。

希望这对您有帮助。

关于ios - 增加捏合手势中的字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36026621/

相关文章:

c# - Java <-> Java/C#/Objective-C 之间的通信

ios - Miles Away 重新加载时未更新

ios - 更新标签对象中的字体

ios - 带有 stringByAppendingPathComponent 的 NSInvalidArgumentException

ios - Flurry 集成 Xcode 上的 Mach-O 错误

ios - 如何在多个内联 UINavigationController 之间转换?

ios - 设置 UILabel 字体大小,将文本移到其框架的左侧

swift - 开启通用类型?

swift - 是否可以满足 Swift 协议(protocol)并添加默认参数?

ios - Swift 4 - 如何从 socket 集合中的自定义 UIView 获取 UI 元素?