Khi áp dụng UISplitViewController
mới, tôi đang cố thay đổi hành vi mặc định xảy ra khi sử dụng chế độ UISplitViewControllerDisplayModeAutomatic
.Ẩn lớp phủ UISplitViewController theo chiều dọc
Khi làm việc theo chiều dọc, tôi muốn lớp phủ chính ẩn khi người dùng kích hoạt tính năng đẩy sang phía chi tiết. Theo mặc định, lớp phủ vẫn còn trên màn hình cho đến khi người dùng chạm vào phía chi tiết.
Tôi đã thử bằng cách sử dụng sau đây với các đại biểu:
- (BOOL)splitViewController:(UISplitViewController *)splitViewController showDetailViewController:(UIViewController *)vc sender:(id)sender
{
if (splitViewController.displayMode == UISplitViewControllerDisplayModePrimaryOverlay) {
[UIView animateWithDuration:0.3 animations:^{
splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden;
}];
}
return NO;
}
này mang lại cho tôi những hành vi mong muốn trong bức chân dung, nhưng điều này phá vỡ chế độ phong cảnh (mà tôi muốn cư xử như UISplitViewControllerDisplayModeAllVisible
). Nếu bạn đã thực hiện một cú đẩy và sau đó xoay thiết bị, phía bên trái vẫn bị ẩn (như mong đợi). Tôi không thể tìm thấy một vị trí appriprite để móc vào để thiết lập lại chế độ ưa thích trên xoay để hiển thị phía bên trái (vì bộ sưu tập đặc điểm không thể được sử dụng để nói với cảnh quan vs chân dung trên iPad).
Tôi làm cách nào để kích hoạt loại bỏ lớp phủ theo cách thủ công?
Dupe lưu ý:iOS8 đã thay đổi hoàn toàn UISplitViewController
, vì vậy tất cả SO câu trả lời khác trước ngày '14 có lẽ sai (và tôi đã đào qua nhiều trong số họ, chỉ trong trường hợp)
Câu trả lời đơn giản. Tôi tìm thấy thời lượng là 0,3 để có một chút chậm so với hoạt ảnh khi bạn chuyển đổi vào hoặc ra bằng một swipe hoặc nút; 0,2 giây có vẻ đúng. – Nick
Công việc này tuyệt vời nhưng nếu chế độ xem chính hiển thị khi thiết bị được xoay ngang, chế độ xem chi tiết không thay đổi kích thước phù hợp. – Leon