Autolayout: Thêm ràng buộc vào superview chứ không phải Top Layout Guide?


112

Tôi có một UIView trong UIViewController của tôi trong bảng phân cảnh mà tôi muốn thêm một ràng buộc vào không gian xem một khoảng cách từ cạnh trên cùng.

Bây giờ, khi tôi làm việc bình thường bằng cách ctrl + kéo đến chế độ xem chính của ViewController, tôi chỉ nhận được tùy chọn để đặt nó thành hướng dẫn bố cục hàng đầu.

Đây là một vấn đề đối với tôi vì tại một thời điểm trong ứng dụng, tôi sẽ di chuyển chế độ xem chính lên khoảng 20-50px và điều xảy ra sau đó là chế độ xem mà tôi có sẽ không di chuyển ... bởi vì nó không được căn chỉnh với chế độ xem siêu tốc.

Làm cách nào để tôi có thể thực hiện việc này theo cách thủ công trong bảng phân cảnh hay tôi phải thêm nó theo chương trình?

Tôi đang sử dụng xcode 6.


Bạn có thể kéo và thả đến đúng đối tượng trong đường viền tài liệu ở bên trái không? - Các đối tượng cảnh trong ảnh chụp màn hình này: ptgmedia.pearsoncmg.com/images/chap5_9780672335761/elementLinks/…
Woodstock

Ive cũng đã thử điều đó, kết quả tương tự
Arbitur

Câu trả lời:


306

Có một mũi tên ở bên phải của giá trị hằng số ràng buộc. Nếu bạn nhấp vào nó, một menu sẽ xuất hiện nơi bạn có thể chọn mục mà bạn muốn thực hiện ràng buộc. Nếu bạn chọn 'Xem', nó sẽ ghim nó lên đầu chế độ xem.

nhập mô tả hình ảnh ở đây


6
Hallelujah! Tôi không biết mình sẽ làm gì khi họ xóa trình đơn Trình chỉnh sửa -> Ghim.
Jeremy Hicks

4
không thể tin rằng tôi đã không nhìn thấy điều đó trước đây. Tuyệt vời.
zumzum

9
Chỉ là một lưu ý cho những người không hiểu biết như tôi -> bạn có thể không thực hiện được thay đổi này trừ khi dạng xem bạn đang thêm ràng buộc ở bên dưới hướng dẫn bố cục trên cùng. Tôi đã xem phía trên hướng dẫn bố cục hàng đầu và "Hướng dẫn bố cục hàng đầu" không phải là một tùy chọn trong menu thả xuống. Mà có lẽ là một "duh" tuyên bố cho người không newbs như tôi :)
Ryan James

2
Đó là về những nét tinh tế nhỏ của Xcode. Điều đó làm rất nhiều. :)
Marchy

Chỉ một lời giải thích ngắn gọn khiến tôi bối rối: mặc dù hình ảnh có đánh dấu Hướng dẫn bố cục hàng đầu, nhưng nếu bạn muốn ghim chế độ xem lên ĐẦU của chế độ xem giống như trên cùng của thiết bị, hãy chọn "Xem".
micnguyen 03/02/16

57

Bạn sẽ có thể làm điều đó bằng cách đánh dấu chế độ xem bạn muốn trong bảng phân cảnh và sau đó chọn Editor > Pin > Top Space to Superviewtrong menu trên cùng.


Điều này đã lỗi thời trong XCode 7, hãy xem câu trả lời của @ PaulGurov.


Công trình như một say mê - XCode 6.3
NKorotkov

4
Họ đã xóa 'ghim' khỏi menu trình chỉnh sửa trong Xcode 7. Có giải pháp mới nào không?
Kyle G,

14

TL; DR: Bạn có thể giới hạn lề bằng cách nhấn Altphím trên bàn phím.


Người ta cũng có thể nói thêm rằng nếu chế độ xem bạn đang cố gắng ghim không phải là chế độ xem phụ trực tiếp của chế độ xem mà bạn muốn ghim nó, thì cách tiếp cận được đề xuất không thực sự hợp lệ. Giả sử phân cấp chế độ xem trông giống như vậy và bạn muốn ghim chế độ xem hình ảnh ( Parallax Image Viewtrong trường hợp này) vào chế độ xem của bộ điều khiển chế độ xem ( Viewtrong trường hợp này).

nhập mô tả hình ảnh ở đây

Để làm điều đó, bạn chỉ cần Control+ Dragtừ Parallax Image Viewđến View. Điều đó trình bày các lựa chọn mặc định mà bạn có thể thấy Vertical Spacing to Top Layout Guideđể ghim Parallax Image Viewvào hướng dẫn bố cục trên cùng.

nhập mô tả hình ảnh ở đây

Những gì bạn muốn là ghim nó vào đầu (lề) của chế độ xem. Để làm điều đó, bạn phải chuyển sang tập hợp các ràng buộc khác bằng cách nhấnAlt

nhập mô tả hình ảnh ở đây


Mẹo rất hữu ích. Điều này thực sự đã giải quyết được vấn đề của tôi.
Machado

Nó hoạt động với tôi, nhưng tôi không biết làm thế nào để thêm nhiều ràng buộc cùng một lúc. Bây giờ, tôi phải thêm từng cái một, mất thời gian.
Duc Nguyen

3

Tôi đã có cả đống ràng buộc ở đó và tôi chỉ muốn thay đổi chúng hơn là phá bỏ chúng. Hóa ra nếu bạn nhấp đúp vào ràng buộc để chỉnh sửa, sau đó nhấp vào mục có ".Margin", bạn chỉ cần tắt "Relative to Margin" bằng cách chọn mục đó.

Chọn liên quan đến ký quỹ


Đây là những gì tôi đã tìm kiếm khi tôi đến đây! Cảm ơn
netigger

1

Câu trả lời của Dan hoạt động. Tôi chỉ muốn nói rằng nếu bạn đặt chế độ xem của mình trong storyBoard ở y <20 và định cấu hình các ràng buộc thông qua bảng ghim, nó sẽ đặt ở đầu thành superview:

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


0

Nếu chiều cao của chế độ xem được đặt thành 0 do ngẫu nhiên, Hướng dẫn bố cục không gian dọc đến trên cùng sẽ KHÔNG xuất hiện. Tuy nhiên, Hướng dẫn bố cục từ không gian dọc đến dưới cùng sẽ xuất hiện, điều này hẳn có ý nghĩa đối với ai đó bên trong Apple vào khoảng năm 2004.


0

Không có câu trả lời nào ở trên phù hợp với tôi, thay vào đó, tôi phải thực hiện hack để đặt chế độ xem phụ của mình lên đầu chế độ xem siêu cấp thay vì hướng dẫn bố cục hàng đầu.

  • Đầu tiên, đặt trung tâm chế độ xem phụ theo chiều dọc với chế độ xem siêu tốc.
  • Sau đó, thay đổi ràng buộc Trung tâm Y cho chế độ xem phụ cũng như chế độ xem siêu cao thành ràng buộc hàng đầu .

Bạn tốt để đi ngay bây giờ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.