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

问题描述 投票:1回答:1

我有一个ViewController(MainVC),它拥有一个标签(myLabel)和一个tableview(myTableView)。

每当我滚动myTableView然后我需要自动增加/减少UILabel字体大小以及宽度和高度。

例:-

最初myLabel.numberoflines = 2,myLabel.font = 30,Width = 100,Height = 100。

现在,当我开始滚动myTableView时,它看起来像myLabel.numberoflines = 1,myLabel.font = 20,Width = 200,Height = 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

ios swift uitableview
1个回答
1
投票

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

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)
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.