가변 행 수를 표시하거나 숨기는 방법

iOS 애플리케이션에서 일부 UI 요소는 컨텐츠 및 버튼 작업 등을 통해 표시되거나 숨겨집니다.세로 높이 고정 UI 요소의 경우 높이NSLayoutConstraint를 설정하고 속성constant을 원래 높이 또는 0으로 전환하여 표시/숨기기를 전환할 수 있습니다.
그러나 UI 요소가 행 수가 변경될 수 있음UILabel인 경우 중간 문자열의 높이가 다르기 때문에 이러한 방법을 사용할 수 없습니다.
따라서 높이를 0NSLayoutConstraint으로 설정하고 속성을 250 또는 750으로 전환하여 표시/숨기기를 전환할 수 있습니다.
높이가 0인 NSLayoutConstraint 설정priority 속성의 기본값을 250으로 설정

ShrinkCell.swift
class ShrinkCell: UITableViewCell {
    var originalLabelBottomConstraint = CGFloat(0)

    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var labelHeight: NSLayoutConstraint!
    @IBOutlet weak var labelBottomConstraint: NSLayoutConstraint!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code

        originalLabelBottomConstraint = labelBottomConstraint.constant
    }

    func configure(hidden: Bool) {
        if hidden {
            // 非表示(トルツメ)
            labelHeight.priority = 750 // 高さ0が優先される
            labelBottomConstraint.constant = 0
        } else {
            // 表示
            labelHeight.priority = 250 // UILabelの高さが優先される
            labelBottomConstraint.constant = originalLabelBottomConstraint
        }
    }
}
표시할 때

숨겨진 시간

좋은 웹페이지 즐겨찾기