뷰의 프레임을 수정하거나 상위 뷰에서 뷰를 제거하면 뷰의layoutSubviews 메서드가 직접 호출되고, contentMode가 UIViewContentModeRedraw로 설정된 경우 drawRect 메서드도 호출됩니다. 이때 일부 그리기 및 레이아웃 작업을 수행하기 위해 이 두 가지 방법을 사용자 정의하면 작업을 수행하는 데 CPU와 GPU가 소비됩니다.
일반적으로 원래 프레임을 변경할 필요가 없으므로 숨김이 더 안정적입니다. 다시 표시해야 할 경우 속성을 직접 수정하면 됩니다. 매번 프레임을 변경하면 속도가 느려질 뿐만 아니라 원래 컨트롤도 수정됩니다. 제약 조건의 경우 프레임을 변경하면 다시 제약할 필요가 없습니다. 그렇지 않으면 제약 조건을 제거해야 합니다. 각 상황을 살펴보겠습니다
뷰의 프레임을 수정하거나 상위 뷰에서 뷰를 제거하면 뷰의layoutSubviews 메서드가 직접 호출되고, contentMode가 UIViewContentModeRedraw로 설정된 경우 drawRect 메서드도 호출됩니다. 이때 일부 그리기 및 레이아웃 작업을 수행하기 위해 이 두 가지 방법을 사용자 정의하면 작업을 수행하는 데 CPU와 GPU가 소비됩니다.
따라서 뷰만 숨기고 싶다면 숨겨진 속성을 직접 사용하면 됩니다.
숨겨진 설정이 더 일반적입니다.
사용자도 마찬가지지만 시스템의 숨겨진 버전이 더 안정적입니다.
필요에 따라 [self.xxx RemoveFromSuperview]를 수행할 수 있습니다.
숨겨진 것이 더 좋습니다
숨겨진 후에도 여전히 자리를 차지해야 하며, 그에 따른 제약도 존재합니다
하위 뷰가 있는 경우 숨김을 사용하거나 상위 뷰에서 제거
일반적인 상황에서는 숨김을 사용하는 것이 좋지만, 변경해야 하는 제약이 있거나 레이아웃 하위 뷰가 필요한 경우 프레임을 제거하거나 변경하는 것이 좋습니다.
숨기고 싶으면 숨김으로 설정하세요. 그렇지 않으면 숨겨진 이름이 바로 숨김으로 번역되므로 아무것도 할 필요가 없습니다~
일반적으로 원래 프레임을 변경할 필요가 없으므로 숨김이 더 안정적입니다. 다시 표시해야 할 경우 속성을 직접 수정하면 됩니다. 매번 프레임을 변경하면 속도가 느려질 뿐만 아니라 원래 컨트롤도 수정됩니다. 제약 조건의 경우 프레임을 변경하면 다시 제약할 필요가 없습니다. 그렇지 않으면 제약 조건을 제거해야 합니다. 각 상황을 살펴보겠습니다