Tag: 拉伸

iOS中具有自动布局的可伸缩页眉

伸缩头很酷。 人们熟悉更改框架以实现此目的,例如“设计拆解:可伸缩页眉”。 但是通过自动版式,我们可以使用更好的声明性约束来实现 演示项目为StretchyHeader 我使用SnapKit来明确我们需要哪些约束 scrollView应该将其4个边固定到ViewController ‘s view func setupScrollView(){ scrollView = UIScrollView() scrollView.delegate =自我view.addSubview(scrollView) scrollView.snp_makeConstraints {制造 make.edges.equalTo(view) } } scrollViewContentView必须将其4个边固定到scrollView以帮助确定scrollViewcontentSize scrollViewContentView的高度由其子视图确定。 里面的子视图必须将其top和bottom到scrollViewContentView func setupScrollViewContentView(){ scrollViewContentView = UIView()scrollView.addSubview(scrollViewContentView) scrollViewContentView.snp_makeConstraints { make.edges.equalTo(scrollView) make.width.equalTo(view.snp_width) } } header必须将其顶部固定到scrollView父级,即ViewController ‘s view 阅读title部分,您将看到为了使header伸缩性,必须将其固定在顶部和底部 但是如果我们向上滚动,这些固定的top和bottom约束之间将存在约束冲突 因此,我们必须将headerTopConstraint优先级声明为999,并且headerLessThanTopConstraint func setupHeader(){ 标头= UIImageView() header.image = UIImage(named:“ onepiece”)! scrollViewContentView.addSubview(header) header.snp_makeConstraints { //将header固定到scrollView的父级,现在是ViewController的视图 //当header向上移动时,headerTopConstraint不够,因此将其优先级设为999,并添加另一个小于或等于约束 make.leading.trailing.equalTo(scrollViewContentView) self.headerTopConstraint […]