2015-01-21 16 views
6

Tôi có một vấn đề mà tôi muốn sửa đổi NSLayoutconstraints trên một UIView nhưng nó xuất hiện rất nhiều thuộc tính là chỉ đọc. Ban đầu tôi có bốn UIViews như hình vuông trong một loại xem quad và tất cả chúng được gắn với nhau với một khoảng cách khoảng 20 pixel.AutoLayout Sửa đổi các ràng buộc

Tôi có một nút làm tăng khung của một trong những ô vuông đó thành toàn màn hình bao gồm tất cả các hình ảnh khác. Đó là vào thời điểm này tôi muốn thay đổi những hạn chế của UIView để đính kèm nó vào đường biên giới superviews tại 20 pixel, theo cách đó khi tôi xoay nó không quay trở lại chế độ xem quad nhưng duy trì toàn màn hình. Có vẻ như tài sản tôi muốn thay đổi là 'seconditem' nhưng điều này sẽ không hoạt động. Tôi đang tiếp cận vấn đề này theo cách sai? Tôi tìm Autolayout một chút khó khăn vì vậy bất kỳ trợ giúp sẽ được nhiều đánh giá cao

Trả lời

9

Hi bạn có thể làm 2 bộ trở ngại:

  • 1 để quản lý xem quad của bạn với ưu tiên cao
  • 1 để quản lý toàn màn hình của bạn với mức độ ưu tiên Thấp

Trong phương thức được gọi khi bạn nhấn vào nút, đặt mức ưu tiên cao thành giới hạn toàn màn hình và mức ưu tiên thấp so với giới hạn chế độ xem quad của bạn.

+0

Điều đó có vẻ hợp lý, tôi đã nhận được lỗi thời gian chạy mặc dù: Việc bỏ qua mức độ ưu tiên từ bắt buộc đến không phải trên ràng buộc đã cài đặt (hoặc ngược lại) không được hỗ trợ. Bạn đã vượt qua mức độ ưu tiên 250 và mức độ ưu tiên hiện tại là 1000 – Md1079

+6

Có, các ràng buộc bạn muốn thay đổi mức độ ưu tiên không cần phải là "bắt buộc" (mức độ ưu tiên = 1000). Như tôi đã nói với bạn, đặt chúng thành "cao" (ưu tiên = 750) và chuyển sang "thấp" (ưu tiên = 250) và ngược lại. – Vincent

+0

Cảm ơn, đã cho nó một đi, nhưng kết thúc lên messing xem khác lên (có thể là do những hạn chế thiết kế xấu)! Tôi đã kết thúc chỉ cần tiết kiệm và loại bỏ tất cả các khó khăn khi nút được nhấn và tạo ra một loạt những cái mới programatically để có được hiệu quả mong muốn. Sau khi hoàn thành tôi chỉ có thể đảo ngược quá trình. – Md1079

Các vấn đề liên quan