2013-03-13 15 views
27

IB, stop adding that padding!Làm cách nào để ngăn Trình tạo giao diện thêm khoảng đệm 20pt xung quanh nội dung của chế độ xem phụ?

Thấy rằng 20px (pt thay vì) đệm? IB tự động thực hiện trong hai trường hợp, khi bạn nhấn Cmd + = để tự động hóa superview để phù hợp với nội dung của chế độ xem con và khi bạn chọn Editor > Embed In > UIView, UIScrollView etc..

Sau này đặc biệt gây phiền nhiễu vì phải mất một bước tiết kiệm thời gian và biến nó thành một rắc rối định vị lại chỉ tốt hơn so với thực hiện thủ công và mất vị trí tương đối của TẤT CẢ các bản xem trước khi bạn kéo chúng vào một vị trí khác trong hệ thống phân cấp.

Ngoài ra với các tùy chọn Embed In, IB thấu kính chính xác vị trí của wrapper SuperView mới bằng (-20, -20), nếu như mà làm cho nó tốt hơn ...

Tôi có thiếu cái gì ở đây? Có cách nào để ngăn chặn sự đệm này?

Trả lời

35

cuối cùng tôi đã tìm ra cách để làm điều đó, liên quan đến câu trả lời này:

Group views in Interface Builder

  1. Chọn tất cả các quan điểm mà bạn muốn nhúng (bằng cách thay đổi hoặc lệnh nhấp vào chúng).
  2. Trình biên tập-> Nhúng trong-> Chế độ xem. Điều này tạo ra một cái nhìn "A" với padding 20 pixel thừa.
  3. Tạo chế độ xem mới "B" với giới hạn thực tế bạn mong muốn (nhỏ hơn 20 pixel so với "A" ở tất cả các cạnh).
  4. Kéo chế độ xem vùng chứa cũ "A" vào chế độ xem vùng chứa mới "B" (Xcode sẽ căn giữa nó cho bạn trong "B", giữ nguyên vị trí hiện tại của tất cả các phần tử con).
  5. Nhấp vào chế độ xem vùng chứa cũ "A" và chuyển đến Trình chỉnh sửa-> Không được gắn.

Bây giờ các phần tử con của bạn được định vị chính xác trong chế độ xem "B" và không có 20 pixel đệm.

Đã thử nghiệm trong Xcode 4.5.

P.S. kỹ thuật này có thể đặc biệt hữu ích khi bạn muốn có một thanh bên và hỗ trợ cả màn hình 3,5 "và 4". Bạn có thể cung cấp cho thanh bên và chế độ xem chính tự động hóa thích hợp và sau đó chia tỷ lệ các bản xem trước liên quan đến chúng. Tôi đã gặp khó khăn lần xem GLKit tôn trọng autosizing quy tắc, vì vậy tôi thiết lập quan điểm thông thường và nhúng các quan điểm GLKKit trong họ với tất cả các thanh autosizing đỏ được kích hoạt:

GLKView nested subview frame size and bounds size incorrect

+6

Kỹ thuật hay. Cảm ơn. Nhưng về cơ bản câu trả lời đúng là "Bạn không thể"? –

+1

Làm việc trong Xcode 5.1. Đây sẽ là câu trả lời đúng vì nó cung cấp một giải pháp cho vấn đề, mặc dù nó không trực tiếp như mong muốn. – kraftydevil

+0

Fantastic :) Tôi thích điều này. – Vignesh

0

Tất cả bạn phải làm, tại nhất là trong Xcode 7.2 là cung cấp cho các container Xem những hạn chế sau đây

Trailing Space to Superview = -20 

Leading Space to Superview = -20 
0

Đây là những gì làm việc cho tôi trên Xcode 9. Lưu ý rằng cách này bạn sẽ mất những hạn chế của quan điểm hàng đầu mà bạn đang nhúng. Vì vậy, để nhúng một chế độ xem vào một chế độ xem khác:

  1. Tạo chế độ xem trống khác trên cùng một cấp độ như lượt xem bạn sắp nhúng.
  2. Định vị chế độ xem mới chính xác và thêm các ràng buộc từ chế độ xem đó vào trình giám sát .Tôi nghĩ rằng trong hầu hết các trường hợp, bạn muốn nhân đôi cùng một ràng buộc như bạn có từ chế độ xem hiện tại cho superview.
  3. Sau đó, chọn chế độ xem cần được nhúng và kéo chế độ xem theo chế độ xem mới . Giờ đây, bạn đã nhúng chế độ xem của mình vào chế độ xem mới. Những gì bạn cần là thêm 0 ràng buộc cạnh từ chế độ xem được nhúng vào chế độ xem mới.

Vậy đó.

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