Swift 控件横向放置,被拉伸或者压缩的问题

一个基础问题,比如,UITextField和label横向并排放置,label可能会被拉伸或者压缩

        //错误示例
        let rightLabel = UILabel()
        self.view.addSubview(rightLabel)
        rightLabel.snp.makeConstraints { make in
            make.top.right.bottom.equalToSuperview()
        }
        
        let leftTextField = UITextField()
        self.view.addSubview(leftTextField)
        leftTextField.snp.makeConstraints { make in
            make.top.left.bottom.equalToSuperview()
            make.right.equalTo(rightLabel.snp.left)
        }

这样的代码。会让rightLabel被leftTextField拉长
可以设置优先级

//不希望被拉伸
rightLabel.setContentCompressionResistancePriority(.defaultHigh, for: .horizontal)
//不希望被压缩
rightLabel.setContentHuggingPriority(.defaultHigh, for: .horizontal)

或者

//希望被拉伸
leftTextField.setContentCompressionResistancePriority(.defaultLow, for: .horizontal)
//希望被压缩
leftTextField.setContentHuggingPriority(.defaultLow, for: .horizontal)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容