Tôi có một cái nhìn bảng và một ô bên trong nó. Ô chứa ba nhãn: nhãn tiêu đề và hai nhãn bên dưới một nhãn với nhau. Đôi khi, tôi cần ẩn hai nhãn đó bên dưới nếu chúng không chứa dữ liệu và thay đổi "Không gian trên cùng thành vùng chứa" của "Nhãn tiêu đề" thành "Trung tâm Y thành vùng chứa". Và tất nhiên trở lại các ràng buộc trở lại khi hai nhãn chứa dữ liệu. Dưới đây là một ảnh chụp màn hình của dự án trình diễn đơn giản chỉ để thể hiện ý tưởng:Làm thế nào để thay đổi ràng buộc nhãn trong thời gian chạy?
CẬP NHẬT Max MacLeod câu trả lời chỉ để đi đúng hướng. Bí quyết là đẩy nhãn tiêu đề xuống khi nhãn thứ nhất và thứ hai bị ẩn. Vì vậy, chúng tôi cần đặt không gian dưới cùng cho chế độ xem vùng chứa cho nhãn đầu tiên và thứ hai thay vì tạo không gian trên cùng cho chế độ xem vùng chứa cho nhãn tiêu đề. Và ẩn/unhiding nên được thực hiện bằng cách có chiều cao cửa hàng (chiều cao hạn chế cho nhãn đầu tiên và thứ hai) và thiết lập giá trị liên tục của họ bằng không (và thiết lập giá trị trở lại khi unhiding). Tôi cũng đã tải lên số source code example to Github.
Ý của bạn là "thêm một ràng buộc mới để làm cho nhãn tiêu đề có một khoảng trống thẳng đứng". Những loại hạn chế nó nên được? Tôi đã pined nhãn thấp hơn với nhãn tiêu đề bằng cách hạn chế không gian dọc. – Centurion
Nếu tôi loại bỏ ràng buộc "Top space to container" thì IB sẽ hiển thị lỗi với "Need constraint for Y position" – Centurion
vâng trước tiên, bạn cần cung cấp cho nó ràng buộc mới sau đó thêm ràng buộc mới - bây giờ. IB sẽ không cho phép sự mơ hồ –