Cách thiết kế màn hình Chân dung và ngang với các bố cục khác nhau bằng cách sử dụng lớp Kích thước. Tôi chỉ có thể tìm thấy w-regular và h-regular cho cả hai hướng. Ví dụ: Tôi cần phải sắp xếp 2 cửa sổ theo chiều dọc trong bức chân dung và ngang trong bối cảnh sử dụng Kích LớpBố cục màn hình và bố cục chân dung của iPad với Kích thước lớp
Trả lời
Cuối cùng tôi tìm thấy một giải pháp:
if traitCollection.verticalSizeClass == .Regular && traitCollection.horizontalSizeClass == .Regular {
var orientation:UIInterfaceOrientation = UIApplication.sharedApplication().statusBarOrientation;
if orientation == UIInterfaceOrientation.LandscapeLeft || orientation == UIInterfaceOrientation.LandscapeRight {
// orientation is landscape
} else {
// orientation is portrait
}
}
Nó dường như là ý định của Apple để điều trị cả hai định hướng iPad như giống nhau - - nhưng như một số người trong chúng ta đang tìm kiếm, có rất nhiều lý do thiết kế hợp pháp để muốn thay đổi bố cục UI cho iPad Portrait so với iPad Landscape.
Tuy nhiên, vui lòng xem câu trả lời này cho cách tiếp cận khác để thích ứng với các lớp học quy mô để làm những gì chúng ta cần: https://stackoverflow.com/a/28268200/4517929
Tôi đang phát triển ứng dụng toàn cầu, trong đó tôi đã thử cách tiếp cận của bạn. nó hoạt động tốt cho iPad nhưng khi tôi đặt ràng buộc cho w: Bất kỳ, h: Bất kỳ điều gì tôi nhận được ** Không thể đồng thời đáp ứng các ràng buộc. ** lỗi –
Đối Swift 3 nó sẽ trông như thế này:
override func overrideTraitCollection(forChildViewController childViewController: UIViewController) -> UITraitCollection? {
if UI_USER_INTERFACE_IDIOM() == .pad &&
view.bounds.width > view.bounds.height {
let collections = [UITraitCollection(horizontalSizeClass: .regular),
UITraitCollection(verticalSizeClass: .compact)]
return UITraitCollection(traitsFrom: collections)
}
return super.overrideTraitCollection(forChildViewController: childViewController)
}
Nó sẽ sử dụng wRhC thay vì wRhR cho thiết bị iPad ở chế độ ngang. Đặt mã này vào bộ điều khiển chế độ xem cơ sở của bạn, tức là quy tắc này sẽ hoạt động đối với tất cả các trình điều khiển được trình bày bởi bộ điều khiển này. Bạn có thể đặt bất kỳ điều kiện bổ sung ở đây ... Ví dụ, nếu bạn muốn quy tắc này có tác dụng duy nhất cho bộ điều khiển xem cụ thể, nếu điều hành của bạn sẽ trông như thế này:
if UI_USER_INTERFACE_IDIOM() == .pad &&
childViewController is YourSpecificViewController &&
view.bounds.width > view.bounds.height {
let collections = [UITraitCollection(horizontalSizeClass: .regular),
UITraitCollection(verticalSizeClass: .compact)]
return UITraitCollection(traitsFrom: collections)
}
Bạn có thể tìm thấy những hậu quả không mong muốn khi thực hiện việc này. Ví dụ, nếu bộ điều khiển khung nhìn này hiển thị một bộ điều khiển dạng phương thức khác như một Form Sheet, nó sẽ hiển thị giống như trên iPhone - toàn màn hình theo chiều dọc - đó có lẽ không phải là thứ bạn muốn. Hơn nữa, trong khi nó đang mở, nếu bạn xoay để cảnh quan nó sẽ trở lại màn hình không đầy đủ, và sẽ ở lại như vậy khi bạn xoay trở lại chân dung. Không phải là một trải nghiệm thú vị. – Michael
- 1. bố cục đất và bố cục xoay màn hình android
- 2. Thay đổi bố cục giá trị cơ bản cho iphone, ảnh hưởng đến bố cục ipad
- 3. Bố cục bố cục bàn phím ảo trên màn hình
- 4. Sửa kích thước bố cục
- 5. Bố cục Android S3 và bố cục Galaxy Nexus
- 6. Vấn đề bố cục kích thước nội dung trong WPF
- 7. Bố cục lưới Vs. Bố cục bảng
- 8. D3 Circle Pack Bố cục với bố cục nằm ngang
- 9. Chỉnh sửa kích thước hình ảnh tự động trong bố cục dòng CSS để mô phỏng bố cục bảng html
- 10. Cách đặt kích thước và bố cục trong onSizeChanged?
- 11. Tràn với bố cục bố cục tuyệt đối/tương đối
- 12. Bố cục Android và thay đổi kích thước hình ảnh tự động
- 13. Bố cục được bố trí khi nào?
- 14. Hạn chế bố cục trên lớp bố cục không chuẩn
- 15. bố cục Android ở các kích thước màn hình khác nhau
- 16. Bố cục động với bố cục đường ray
- 17. Bố cục lát bằng CSS và HTML
- 18. Bố cục bố cục sai trong cửa sổ bật lên
- 19. Sử dụng agility.js để bố cục trang và bố cục
- 20. Lớp bố cục? Trục Z?
- 21. Cách bố trí tỷ lệ bố trí Android bất kể kích thước màn hình và hướng
- 22. OpenGL và bố cục
- 23. Bố cục chế độ xem sau khi đổi kích thước
- 24. Bố cục JavaFX có tỷ lệ với bố mẹ
- 25. Tetris: Bố cục của các lớp
- 26. thêm bố cục trong bố cục khác
- 27. Bố cục không thể?
- 28. Kích thước bố cục đọc khi khởi động ứng dụng
- 29. Điều chỉnh kích thước bố cục động trong Android
- 30. Bố cục hộp linh hoạt CSS trên iPad
Đối với iphone nó có thể tạo 2 bố cục cho các hướng khác nhau bằng cách sử dụng lớp kích thước. Làm thế nào chúng ta có thể đạt được điều này cho iPad bằng cách sử dụng Size Class và Autolayout? –
Bạn đã tìm được giải pháp chưa? Tôi có cùng một vấn đề. – cmii
Thực ra đây là một câu hỏi cụ thể. Và không có Apple nào không thiết kế các lớp kích thước để kích hoạt một lớp kích thước màn hình cụ thể của iPad, điều này hoàn toàn không có ý nghĩa với tôi vì bạn sau đó phải tự giải quyết cảnh quan trong mã. Tôi không đồng ý với một số phương pháp tấn công hệ thống lớp kích thước. Chỉ cần đối phó với nó trong mã. – n8tr