我有一个ViewController(MainVC),它拥有一个标签(myLabel)和一个表格视图(myTableView)。

每当我滚动myTableView时,我都需要自动执行增加/减小UILabel字体大小以及宽度和高度。

例:-

最初,myLabel.numberoflines = 2
myLabel.font = 30,宽度= 100,高度=100。


现在,当我开始滚动myTableView时,它看起来就像
myLabel.numberoflines = 1,myLabel.font = 20,宽度= 200,高度=50。


在我的代码中
-UIViewController
--UILabel(subview1)
--UITableView(subview2)

我已经尝试过了

func scrollViewDidScroll(_ scrollView: UIScrollView) {
        myLabel.transform = CGAffineTransform(scaleX: 1.5, y: 1.5)
}

XCode 9.2,Swift 4,iOS 11.2

最佳答案

如果您已经初始化了表格视图,则将UITableViewDelegate添加到您的控制器中。
它继承自UIScrollViewDelegate。我们将在UIScrollViewDelegate中使用两种方法。

ios - 如何在iOS Swift4中滚动时增加/减少UILabel字体大小以及宽度和高度-LMLPHP

extension ViewController: UITableViewDelegate {

    // mark where you begin to drag
    func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
        dragOriginY = scrollView.contentOffset.y
    }

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        // compare your start point with the current offset.
        if dragOriginY - scrollView.contentOffset.y < 0 {
                // the drag direction is up
                self.titleLabel.numberOfLines = 2
                self.titleLabel.font = UIFont.systemFont(ofSize: 23)

        } else {
            // drag downwards
            titleLabel.numberOfLines = 1
            titleLabel.font = UIFont.systemFont(ofSize: 17)
        }
    }
}

关于ios - 如何在iOS Swift4中滚动时增加/减少UILabel字体大小以及宽度和高度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47832135/

10-12 01:16