Tôi có bộ điều khiển xem được thiết lập theo chương trình có con UIPageViewController
. Điều này sẽ hiển thị các bộ điều khiển xem khác nhau cũng được thiết lập theo lập trình. Các chế độ xem của trình điều khiển chế độ xem này có translatesAutoresizingMaskIntoConstraints
được đặt thành YES
, nhưng chế độ xem của trình điều khiển chế độ xem trang sử dụng các ràng buộc cho vị trí của chính nó trong trình điều khiển chế độ xem trên cùng.UIPageViewController không thay đổi kích thước bộ điều khiển xem con của nó
Sự cố là khi người dùng xoay thiết bị, trình điều khiển chế độ xem trang sẽ thay đổi kích thước khung của nó nhưng trình điều khiển chế độ xem con của nó thì không. Bởi didRotateFromInterfaceOrientation
, khung của nó vẫn còn từ hướng cũ. Tôi đã xác minh rằng các phương thức xoay được gọi trên các bộ điều khiển xem con, khung của chúng không thay đổi.
tôi thiết lập bộ điều khiển xem trang như thế này:
self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
self.pageViewController.view.backgroundColor = [UIColor clearColor];
self.pageViewController.view.translatesAutoresizingMaskIntoConstraints = NO;
self.pageViewController.dataSource = self;
self.pageViewController.delegate = self;
[self.pageViewController willMoveToParentViewController:self];
[self.view addSubview:self.pageViewController.view];
[self addChildViewController:self.pageViewController];
[self.pageViewController didMoveToParentViewController:self];
self.currentPageIndex = 0;
self.currentPageController = [self pageForIndex:self.currentPageIndex];
self.currentPageController.delegate = self;
[self.pageViewController setViewControllers:@[self.currentPageController] direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL];
Tôi đã cố gắng kêu gọi setNeedsLayout
nhưng đó là một hình ảnh động xoay vụng về và các trang tiếp theo mà tôi vuốt đến cũng không được thay đổi kích cỡ đúng cách.
Tại sao bộ điều khiển chế độ xem trang không thay đổi kích thước bộ điều khiển chế độ xem con của nó và làm cách nào để làm điều này?
Cảm ơn!
Bạn có tìm thấy giải pháp cho vấn đề của mình không? Tôi bị mắc kẹt với cùng một vấn đề. – AlexR
Vấn đề là -didRotateFromInterfaceOrientation trên bộ điều khiển con không bao giờ được gọi. Tôi đã giải quyết nó bằng cách gọi thủ công nó từ bộ điều khiển chế độ xem gốc -didRotateFromInterfaceOrientation. –
Phương pháp trên bộ điều khiển xem clild là gì bạn gọi để xử lý thay đổi định hướng? – Satyam