Sự khác biệt giữa tệp .xib và .storyboard là gì?


159

Ai đó có thể giải thích bằng những từ đơn giản về sự khác biệt giữa .xib và .storyboard không?


Tôi không biết .timeline là gì và tôi nghi ngờ nó không liên quan gì đến dòng thời gian của Facebook mà thẻ đề cập đến
iandotkelly

1
Có phải hai câu hỏi hoàn toàn riêng biệt, George? Ngoài ra, khi bạn nói .timeline, bạn đang nói về các phiên bản của một tệp đã lưu ?
Michael Dautermann

Bạn có hai câu hỏi riêng biệt ở đây, vì vậy tôi đã tinh chỉnh nó thành một câu hỏi. Câu hỏi đầu tiên đã được hỏi một vài lần ở đây, chẳng hạn như trong Không thể tìm thấy ứng dụng dựa trên cửa sổ trên XCode , vì vậy tôi đã xóa phần đó để tập trung vào câu hỏi Storyboarding.
Brad Larson

1
Xem thêm câu hỏi tương tự này, Khi nào nên sử dụng Storyboard và khi nào nên sử dụng XIB . Có câu trả lời chi tiết tuyệt vời bao gồm các bản cập nhật cho iOS 8 và Xcode 6.
Basil Bourque

Câu trả lời:


115

Apple đã giới thiệu khái niệm về "storyboarding"SDK iOS5 để đơn giản hóa và quản lý tốt hơn màn hình trong ứng dụng của bạn. Bạn vẫn có thể sử dụng .xibcách phát triển.

Tiền truyện, mỗi cái UIViewControllercó một liên kết .xibvới nó. Storyboardđạt được hai điều:

  1. .storyboardvề cơ bản là một tệp duy nhất cho tất cả các màn hình của bạn trong ứng dụng và nó hiển thị dòng chảy của màn hình. Bạn có thể thêm segues/ chuyển đổi giữa các màn hình, theo cách này. Vì vậy, điều này giảm thiểu mã nồi hơi cần thiết để quản lý nhiều màn hình.

  2. Tối thiểu hóa tổng số tệp trong một ứng dụng.

Bạn có thể tránh sử dụng Storyboardtrong khi tạo dự án mới bằng cách bỏ chọn tùy chọn "Sử dụng bảng phân cảnh".

Bạn có thể tham khảo hướng dẫn này để bắt đầu.


5
Vì vậy, Storyboarding thay thế sự cần thiết cho các tập tin .xib?
William Sham

16
Lý tưởng nhất là có. 1 .storyboard file = 'n' không. của tập tin .xib.
Sagar Hatekar

2
Điều gì về chuyển tiếp giữa các quan điểm, mặc dù? Tôi biết rằng có những sự khác biệt, nhưng chỉ có một vài phong cách khác nhau. Tôi giả sử rằng bạn vẫn có thể chuyển đổi giữa các chế độ xem giống như trước đây, nhưng nếu bạn không sử dụng một segue, nó sẽ trông kỳ lạ trong bảng phân cảnh, phải không? suy nghĩ của bạn về điều đó là gì?
dontangg

1
Trong trường hợp đó, tôi tin rằng NavigationControllers sẽ hoạt động?
Sagar Hatekar

sự thật thú vị: Tôi sử dụng bài đăng này để khoe tín dụng iOS (có giới hạn) của mình: D
Sagar Hatekar

22

Có, bạn vẫn có thể tạo một ứng dụng dựa trên Window cho iOS 5. Nếu bạn sử dụng mẫu "dự án trống", bạn sẽ thấy rằng một cửa sổ được tạo cho bạn trong đại biểu ứng dụng. Từ đó bạn có thể thêm các tệp XIB như bình thường hoặc bảng phân cảnh mới.

Tôi giả sử bạn có nghĩa là "bảng phân cảnh" chứ không phải là "dòng thời gian". Bảng phân cảnh cho phép bạn vạch ra, trực quan, tất cả các chế độ xem trong ứng dụng của bạn và cách chúng liên quan đến nhau. Nếu bạn chỉ mới bắt đầu với bảng phân cảnh, có phần giới thiệu về bảng phân cảnh trong các video WWDC 2011 tại đây . Khóa học Stanford iOS 2011 trên iTunes-U cũng dành riêng cho iOS 5 và bao gồm các bảng phân cảnh và hơn thế nữa.


15

Bảng phân cảnh giống như một khung vẽ nơi bạn đặt tất cả các tệp .xib của mình. Bạn không còn có bất kỳ .xib nào nữa, bạn chỉ cần có Bộ điều khiển xem trực tiếp trên khung vẽ của mình.


2
Có thể là câu trả lời hữu ích nhất.
Munib

9

Storyboard là một tính năng mới có sẵn kể từ khi phát hành Xcode 4.2. Nó cung cấp một cách hoàn toàn mới cho nhà phát triển iOS để tạo và thiết kế giao diện người dùng. Trước khi giới thiệu Storyboard, người mới bắt đầu rất khó tạo giao diện điều hướng (và tab). Mỗi giao diện được lưu trữ trong một tệp xib riêng. Trên hết, bạn phải viết mã để liên kết tất cả các giao diện lại với nhau và mô tả cách điều hướng hoạt động.

Với Storyboards, tất cả các màn hình được lưu trữ trong một tệp duy nhất. Điều này cung cấp cho bạn tổng quan về khái niệm biểu diễn trực quan cho ứng dụng và cho bạn thấy cách màn hình được kết nối. Xcode cung cấp trình chỉnh sửa tích hợp để bố trí Storyboards. Bạn có thể xác định quá trình chuyển đổi (được gọi là segues) giữa các màn hình khác nhau chỉ bằng cách sử dụng điểm và nhấp. Điều này không có nghĩa là bạn không cần phải viết mã cho giao diện người dùng. Nhưng Storyboards giảm đáng kể số lượng mã bạn cần viết.

Nguồn: http://www.appcoda.com/use-storyboards-to-build-navlation-controll-and-table-view/


2

XIB:

1) Các tệp Xib được sử dụng với một UIView duy nhất.

2) Rất khó để thực hiện bố cục tự động phức tạp trong xib.

3) Nó sử dụng nhiều bộ nhớ hơn so với bảng phân cảnh và yên tĩnh chậm.

4) Nó tương thích từ iOS5 trở đi

5) Bạn có thể thực hiện bản địa hóa cho các ngôn ngữ và quốc gia khác nhau bằng các XIB khác nhau.

6) Thật khó để sử dụng cùng một Xib để hỗ trợ nhiều thiết bị.

Bảng phân cảnh

1) Bạn có thể bố trí tất cả các Cảnh của mình như Bộ điều khiển xem, Bộ điều khiển Nav, Bộ điều khiển TabBar, v.v. trong một bảng phân cảnh.

2) Bạn có thể dễ dàng sử dụng Bố cục tự động xác định mối quan hệ toán học giữa các yếu tố xác định vị trí và kích thước của chúng.

3) Thường nhanh và phân bổ ít bộ nhớ.

4) Nó không tương thích trước iOS 5.

5) Các ô "Động" và "Nguyên mẫu" có thể được sử dụng dễ dàng.

6) Bảng phân cảnh tốt nhất để sử dụng cho các ứng dụng có số lượng màn hình nhỏ đến trung bình.

Câu trả lời hay nhất tôi từng thấy: Xib Vs Storyboard trong iOS


0

XIB và Storyboard được sử dụng để tạo giao diện cho người dùng.

Một điểm quan trọng là, xibs được sử dụng để tạo một chế độ xem duy nhất (nó có chủ sở hữu tệp duy nhất ở đầu tệp xib), nhưng trong trường hợp đối với trình điều khiển chế độ xem, có thể thêm nhiều màn hình và có thể theo dõi luồng của nó chủ sở hữu tập tin riêng biệt).

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.