Có thể di chuyển một bộ điều khiển UIPopover xung quanh màn hình khi nó đã được trình bày không?
Tôi có một giao diện nhỏ trong ứng dụng có thể di chuyển một chút và tôi muốn một UIPopoverController di chuyển xung quanh với nó mà không cần phải trình bày lại UIPopoverController mỗi khi nó di chuyển. Điều này có thể không?Có thể di chuyển UIPopoverController trên màn hình không?
Trả lời
Kể từ iOS 9, "UIPopoverController không được chấp nhận. Cửa sổ bật lên hiện được triển khai dưới dạng bản trình bày UIViewController. Sử dụng kiểu trình bày phương thức của UIModalPresentationPopover và UIPopoverPresentationController."
Sử dụng thông tin sau để trình bày cửa sổ bật lên. Bạn có thể thay đổi các giá trị của sourceRect và sourceView nhưng đây không phải là hành vi API dự định.
DetailViewController *detailVC = self.detailViewController;
detailVC.preferredContentSize = CGSizeMake(420, 92);
detailVC.modalPresentationStyle = UIModalPresentationPopover;
UIPopoverPresentationController *presController = detailVC.popoverPresentationController;
if (presController) {
presController.delegate = detailVC;
presController.barButtonItem = self.detailButton;
presController.sourceRect = self.view.frame;
presController.sourceView = self.view;
presController.permittedArrowDirections = UIPopoverArrowDirectionAny;
}
[self presentViewController: detailVC animated:YES completion:^{
}];
Thay vào đó, tôi đề nghị giữ tham chiếu đến trình điều khiển chế độ xem được hiển thị với cửa sổ bật lên, loại bỏ cửa sổ bật lên và xuất hiện lại.
DetailViewController *detailVC = self.detailViewController;
[self dismissViewControllerAnimated:NO completion:^{
UIPopoverPresentationController *presController = detailVC.popoverPresentationController;
if (presController) {
presController.delegate = detailVC;
presController.barButtonItem = self.detailButton;
presController.sourceRect = self.view.frame; //Update frame
presController.sourceView = self.view;
presController.permittedArrowDirections = UIPopoverArrowDirectionAny;
}
[self presentViewController: detailVC animated:NO completion:^{
}];
}];
Tôi tiếp tục bình chọn cho điều này. Nếu bạn đang đi xuống bình chọn câu trả lời được chấp nhận này, hãy hữu ích và để lại một bình luận. –
"Tạo của riêng bạn" không phải là câu trả lời tôi sẽ tìm kiếm – Loukas
@Loukas Tôi hy vọng bạn sẽ thích câu trả lời mới tốt hơn. Nếu UIPopoverPresentationController không cung cấp chức năng cần thiết, bạn sẽ phải tạo lại UIPopoverController vì API không phải là rất linh hoạt. –
Không, bạn không thể. Đây không phải là phương pháp để làm điều đó.
pover presentPopoverFromRect:
đã được đề cập trong các ý kiến, nhưng chú ý đến
hiện
bạn không thể đại diện mà không cần vẽ lại.
Pease xem Paper by Fifty trên iPad. Họ có một cửa sổ bật lên có chứa một trường văn bản. Cửa sổ bật lên hoạt hình phía trên bàn phím và khi bàn phím bị loại bỏ, hoạt ảnh trở lại vị trí ban đầu. Việc xây dựng trong hoặc phát triển đã kết thúc? – Daniel
Khi bàn phím xuất hiện, theo mặc định SDK sẽ di chuyển cửa sổ bật lên cao hơn để chứa bàn phím. Khi bàn phím bị loại bỏ, cửa sổ bật lên sẽ hoạt ảnh trở lại vị trí ban đầu của bàn phím. Đây là tất cả được xây dựng trong hành vi. – Andrew
Đúng vậy. Tôi đã quên đi quan điểm của mình với bình luận của tôi, đã quá lâu rồi. – Daniel
Bạn có thể theo dõi người dùng chạm vào màn hình và sử dụng presentPopoverFromRect:
để chỉnh sửa lại cửa sổ bật lên.
Đó là giá trị một thử, nhưng tôi tưởng tượng rằng nó có thể là một ít tốn kém để làm điều đó theo cách đó. Tôi chắc chắn rằng khi bạn loại bỏ nó và reshow nó, có rất nhiều phân bổ các nguồn lực đang xảy ra mà có thể được khá thuế cho hệ thống. –
Điều này đúng, nhưng đó là nơi quản lý bộ nhớ tốt có hiệu lực. Đặc biệt là với iPad, bạn có một ít bộ nhớ hơn để chơi cùng. – WrightsCS
Bạn có thể gọi lại presentPopoverFromRect.
Xem http://developer.apple.com/library/ios/#qa/qa1694/_index.html
- 1. UISearchBar với UIPopoverController giữ kết quả không thể được tương tác với trong khi UIPopoverController là trên màn hình
- 2. Cách định vị chế độ xem ngoài màn hình để có thể Hoạt ảnh để di chuyển trên màn hình?
- 3. là nó có thể di chuyển các emacs minibuffer lên trên cùng của màn hình?
- 4. Tôi có thể di chuyển UIAlertView không?
- 5. Di chuyển toàn màn hình sang màn hình phụ với Win32/SDL
- 6. Di chuyển Biểu mẫu lên Màn hình được chỉ định
- 7. cách di chuyển đến cuối dòng trong màn hình linux
- 8. Kiểm tra xem một hàng có xuất hiện trên màn hình trước khi buộc phải di chuyển đến nó không?
- 9. Di chuyển màn hình đến vị trí nhất định
- 10. Di chuyển con trỏ chuột trên màn hình Android theo chương trình
- 11. đầu vào trên tiêu điểm hoặc phím tab được bấm, di chuyển đến giữa màn hình
- 12. Di chuyển Jquery Một điểm ảnh từ nơi người dùng đang ở trên màn hình
- 13. Thanh công cụ UIPopoverController ở trên cùng
- 14. Làm thế nào để di chuyển một TextView động trên màn hình? (framelayout)
- 15. Di chuyển cửa sổ từ màn hình thứ hai sang màn hình chính khi màn hình thứ hai không hiển thị
- 16. Ngăn yếu tố <input> di chuyển màn hình trên iPhone?
- 17. Di chuyển tất cả các số liệu đến một màn hình cụ thể trong MATLAB
- 18. Màu/mờ có thể vẽ trên màn hình
- 19. Di chuyển uiimageview hoạt hình
- 20. Android: Biểu tượng có thể nhấp nổi trên màn hình?
- 21. Có thể thực hiện hoạt ảnh trên màn hình Android này bằng ViewPager không?
- 22. Có thể tiếp quản toàn bộ màn hình của nhiều màn hình với .NET trên Windows không?
- 23. Sử dụng màn hình riêng biệt trên màn hình ngoài?
- 24. Chế độ hòa trộn trên CALayers trên màn hình? Điều đó có thể không?
- 25. Không thể Di chuyển UIScrollView
- 26. Hiển thị JFrame trên một màn hình cụ thể trong cấu hình màn hình kép
- 27. Fancybox: không thể di chuyển trên điện thoại Android
- 28. Trang web có thể buộc trình duyệt chuyển sang chế độ toàn màn hình không?
- 29. Di chuyển hình động
- 30. di chuyển một phần hình ảnh ra khỏi màn hình trong android
Không phải là '[popover presentPopoverFromRect:]' làm việc cho bạn? –
Câu hỏi đặt ra là liệu anh ta có thể di chuyển cửa sổ bật lên khi nó được trình bày – Sid
Tôi không nghĩ rằng vị trí của nó có thể được thay đổi trực tiếp. Tuy nhiên, nếu bạn gọi presentPopoverFromRect trên nó mà không loại bỏ nó, nó sẽ "di chuyển". – Anna