我有一个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
中使用两种方法。
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/