先上代码
let tView = UIView()
override func viewDidLoad() { tView.backgroundColor = .orange view.addSubview(tView)
}
override func viewWillLayoutSubViews() {
tView.frame = CGRect(x: 10, y: 50, width: 100, height: 50)
}
在页面下拉时tView跟随下拉
func scrollViewDidScroll(_ scrollView: UIScrollView) { tView.transform = CGAffineTransformMakeTranslation(0, scrollView.contentOffset.y) }
在某个时刻触发了 viewWillLayoutSubViews方法,重新设置了frame,导致视图错乱。
原因是设置frame时,transform没有清空,正确的方法是通过设置bounds和center来替代。
参考
https://www.ucloud.cn/yun/15387.html
标签:frame,transform,scrollView,tView,注意,func,UIView From: https://www.cnblogs.com/fwzhou/p/17904539.html