Xcode 6 Storyboard sai kích cỡ?


139

Đã xây dựng một dự án mới từ đầu trong Swift trong Xcode 6 (Beta 1) và đã thấy một số hành vi kỳ lạ với Storyboards và đầu ra mà tôi đang xem.

Tôi đã xây dựng một giao diện đơn giản (như hiển thị bên dưới) - với các thuộc tính của View Controller đi kèm. Khi tôi chạy ứng dụng này trong trình giả lập, tôi sẽ mong đợi 'Xin chào, Thế giới' là trung tâm trong giao diện người dùng - tuy nhiên có vẻ như 'Hình vuông' này chỉ đơn giản là vừa với màn hình iPhone và do đó chế độ xem sai được hiển thị (xem bên dưới ).

Câu hỏi của tôi là: có ai khác nhìn thấy hành vi này không và họ đã sửa nó như thế nào?

Cảm ơn!

Xem từ Trình chỉnh sửa Storyboard

Thanh tra thuộc tính

Thanh tra kích thước

Đầu ra giả lập


thêm các ràng buộc bố trí tự động, mà nên sửa nó. bạn hiện đang thiết kế cho tất cả các bố cục, vì vậy bố cục tự động sẽ giúp bạn hiển thị nội dung ở vị trí "đúng".
Raz

8
Mẹo: Sử dụng trình chỉnh sửa trợ lý> tự động> Xem trước, bạn sẽ có thể xem bản xem trước của màn hình với tất cả các kích thước màn hình
Francescu

Câu trả lời:


81

Mặc dù câu trả lời của Asif Bilal là một giải pháp đơn giản hơn không liên quan đến Lớp kích thước (được giới thiệu trong iOS 8.), chúng tôi khuyên bạn nên làm quen với các lớp kích thước vì chúng là tương lai và cuối cùng bạn sẽ nhảy vào một số điểm."


Bạn có thể chưa thêm các ràng buộc bố trí.

Chọn nhãn của bạn, chạm vào nút ràng buộc bố cục ở phía dưới:

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

Trên menu đó thêm chiều rộng và chiều cao (KHÔNG nên giống như của tôi) bằng cách chọn hộp kiểm của chúng và nhấp vào thêm các ràng buộc. Sau đó, Control-kéo nhãn của bạn vào chế độ xem chính của bạn và sau đó khi bạn nhấp vào, bạn nên có các tùy chọn để căn giữa theo chiều ngang và chiều dọc trong thùng chứa. Thêm cả hai, và bạn nên được thiết lập.


1
Tuyệt vời - điều này rất tốt cho tôi - Cảm ơn sự giúp đỡ của bạn (sẽ chấp nhận câu trả lời của bạn khi đồng hồ bấm giờ được nâng lên)
Candyfloss

1
Không có gì. Đây là hành vi mặc định với tính năng tự động thanh toán, được bật theo mặc định ngay bây giờ. Hãy nhớ rằng, do kích thước / bố cục màn hình khác nhau có thể có, nên có một cách tính toán vị trí của một chế độ xem so với cha mẹ của nó và tự động thanh toán khắc phục vấn đề này. khi bạn không thêm các ràng buộc này, chế độ xem sẽ tự động tạo chúng trong thời gian chạy nhưng liên quan đến góc trên bên trái. Nếu bạn cần bất cứ điều gì khác hơn thế (bạn hầu như luôn cần một thứ khác), bạn cần xác định rõ ràng các ràng buộc.
Có thể Poyrazoğlu

4
Lưu ý việc kéo điều khiển (có thể gây khó xử) là không cần thiết. Nút bên trái của cái được chọn trong hình ảnh này sẽ mở ra một menu cho phép bạn ghim các tâm ngang và dọc.
jrturton

Bạn nói đúng .. Tôi chỉ quen với việc điều khiển kéo, đó là lý do tại sao tôi đã nói như vậy.
Có thể Poyrazolu

@ CanPoyrazoğlu - Bạn đề cập "Chọn nhãn của bạn." Nhãn gì? Tôi đã gặp vấn đề tương tự với một dự án iPhone mới mà tôi không có nhãn hoặc các thành phần UI khác. Dự án đầu tiên của tôi trong Xcode 6, sử dụng Objective C.
rattletrap99

253

Thực hiện các bước sau để giải quyết vấn đề

Trong Storyboard, chọn bất kỳ chế độ xem nào, sau đó chuyển đến Trình kiểm tra tệp. Bỏ chọn "Sử dụng các lớp kích thước", bạn sẽ yêu cầu giữ dữ liệu lớp kích thước cho: iPhone / iPad. Và sau đó nhấp vào nút "Vô hiệu hóa các lớp kích thước". Làm điều này sẽ làm cho kích thước khung nhìn của bảng phân cảnh với thiết bị được chọn.


8
Đây là câu trả lời chính xác nếu bạn đang nhận bộ điều khiển chế độ xem 600x600 khi bạn muốn có bộ điều khiển chế độ xem cỡ iPhone tiêu chuẩn.
Fraggle

5
Đây phải là câu trả lời chính xác (ít nhất là cho những người chỉ hoạt động trên nền tảng không phổ quát)
Raptor

36
Tôi không biết tại sao mọi người đánh dấu đây là câu trả lời đúng ... điều đầu tiên là cách nó nên được thực hiện ... Nếu bạn không thích các ràng buộc về bố cục hơn là bạn đang đi theo hướng ngược lại ... Apple đang tận dụng một cách tốt để phát triển cho tất cả các kích cỡ của iPhone và iPad và bạn chỉ muốn quay lại những thứ cũ? Bởi vì bạn không đủ khả năng cập nhật bản thân? Không bao giờ bỏ phiếu nhưng có vẻ như câu trả lời này khiến mọi người bối rối và sau đó sử dụng cách tiếp cận cũ (sẽ bị phản đối) thay vì khuyến khích sau đó sử dụng công cụ mới ...
Raphael Ayres

3
Câu trả lời hàng đầu cho tất cả những người đã sử dụng bảng phân cảnh iPhone / iPad
mamarx

3
Sử dụng các ràng buộc bố cục ... Apple đang làm điều này giống như cách Android hoạt động. Chế độ xem không có hình thức ... Đôi khi nó có thể là một nỗi đau, nhưng nếu bạn buộc kích thước, Ứng dụng của bạn sẽ trông xấu trên các kích thước thiết bị khác nhau. Nếu bạn muốn một nút xuất hiện ở góc dưới bên phải, chỉ cần tạo 2 ràng buộc cho nó và cấm ... không chọn X hoặc Y. Tất cả sẽ được thiết lập bởi Engine. Sử dụng kích thước nội tại. Sử dụng trí tưởng tượng của bạn. Sử dụng các ràng buộc quan hệ. Tìm hiểu s *** này.
Raphael Ayres

18

Nếu bạn đang sử dụng Xcode 6 và thiết kế cho iOS 8, không có giải pháp nào trong số này là chính xác. Để các chế độ xem chỉ dành cho iPhone của bạn có kích thước chính xác, không tắt các lớp kích thước, không tắt các số liệu được suy luận và không đặt các ràng buộc (chưa). Thay vào đó, hãy sử dụng điều khiển lớp kích thước, đây là nút văn bản dễ bỏ lỡ ở cuối Trình tạo giao diện ban đầu có nội dung "wAny hAny".

Nhấp vào nút và chọn Chiều rộng nhỏ gọn, Chiều cao thông thường. Điều này thay đổi kích thước quan điểm của bạn và bao gồm tất cả các định hướng chân dung iPhone. Tài liệu của Apple tại đây: https://developer.apple.com/l Library / ios / recipes / xcode_help-IB_adaptive_sizes / ch chương / ChọnASizeClass.html hoặc tìm kiếm trên "Chọn một lớp kích thước trong Trình tạo giao diện"


Tôi cảm thấy rất hữu ích khi đọc qua toàn bộ Trợ giúp Thiết kế Lớp Kích thước trong liên kết của bạn, nghĩa là, từ Giới thiệu về Thiết kế cho Nhiều Lớp Kích thước đến Triển khai Ứng dụng với Lớp Kích thước trên các Phiên bản iOS trước đó .
Franklin Yu

Đây là một giải pháp tuyệt vời nếu bạn muốn giữ bố cục tự động nhưng muốn các chế độ xem bảng phân cảnh xuất hiện dưới dạng phong cảnh hoặc chân dung thay vì hình vuông.
stephenspann

5

Trong Storyboard, chọn ViewContoder của bạn và đi đến Atribution Inspector. Ở trên cùng, bên dưới Số liệu mô phỏng, bạn có các thuộc tính Kích thước và Định hướng được đặt thành Suy ra. Thay đổi chúng thành các giá trị mong muốn.

Để ứng dụng hiển thị đúng trên kích thước màn hình khác, bạn cũng phải thiết lập các ràng buộc, như được mô tả bởi Can Poyrazoğlu trong bài đăng đầu tiên.


5

Tôi đã gặp vấn đề này trong xcode 6 và có một cách để giải quyết xung đột thay đổi kích thước. Nếu bạn chọn chế độ xem của mình, ở phía dưới, bạn sẽ thấy một biểu tượng trông giống như | -Δ- |. Nếu bạn nhấp vào nó, dự án của bạn sẽ thay đổi kích thước cho các thiết bị khác nhau.


Có và sau khi bạn chọn biểu tượng tam giác, nhấp vào thêm các ràng buộc bị thiếu và bùng nổ, chế độ xem được thực hiện sẽ thay đổi kích thước theo kích thước thiết bị nếu ứng dụng phổ biến của nó
vishal dharankar 18/07/2015

3

Chuyển đến Trình theo dõi thuộc tính (góc trên cùng bên phải) Trong Số liệu mô phỏng, có các thuộc tính Kích thước, Định hướng, Thanh trạng thái, Thanh trên cùng, Thanh dưới cùng. Đối với KÍCH THƯỚC, thay đổi suy luận -> Freeform.


+1 @Rachel cảm ơn bạn về mẹo nhỏ hữu ích này về Số liệu mô phỏng -> Kích thước: "Freeform" (hay còn gọi là "kích hoạt tùy chỉnh cho xib có thể tái sử dụng được hỗ trợ bởi chế độ xem tùy chỉnh").
cweekly

3

Trên trang bảng phân cảnh của bạn, đi đến Trình kiểm tra tệp và bỏ chọn 'Sử dụng các lớp kích thước'. Điều này sẽ thu nhỏ bộ điều khiển xem của bạn thành kích thước IPhone thông thường mà bạn đã quen thuộc. Lưu ý rằng việc sử dụng 'lớp kích thước' sẽ cho phép bạn thiết kế dự án của mình trên nhiều thiết bị. Khi bạn bỏ chọn điều này, Xcode sẽ cung cấp cho bạn một cuộc đối thoại cảnh báo như sau. Điều này nên được tự giải thích.

"Vô hiệu hóa các lớp kích thước sẽ giới hạn tài liệu này trong việc lưu trữ dữ liệu cho một họ thiết bị. Dữ liệu cho lớp kích thước đại diện tốt nhất cho thiết bị được nhắm mục tiêu sẽ được giữ lại và tất cả các dữ liệu khác sẽ bị xóa. tương đương -adaptive. "


3

Đối với bất kỳ ai sử dụng XCode 7, thật dễ dàng để thiết kế cho một kích thước thiết bị cụ thể (thay vì khung hình vuông mặc định).

Trong Trình tạo giao diện, chọn ViewContoder hoặc Cảnh từ menu bên trái. Sau đó, bên dưới Show the Attributes Inspector, đi đến Simulated Metricsvà chọn mong muốn Sizetừ menu thả xuống.


Điều đó sẽ chỉ cho phép bạn thiết kế trong bảng phân cảnh của mình cho thiết bị đó. Khi bạn chạy ứng dụng của mình, thiết kế của ứng dụng có thể thay đổi mạnh mẽ cho các kích thước màn hình khác nhau.
Joey Tawadrous

@JoeyTawadpy Chính xác. Nhưng nó trả lời câu hỏi được hỏi :)
Linh mục

2

Bạn có thể sẽ sử dụng "Giải quyết các vấn đề bố cục tự động" (biểu tượng tam giác dưới cùng bên phải trong chế độ xem bảng phân cảnh) để thêm / đặt lại các ràng buộc được đề xuất (Xcode 6.0.1).

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.