gpt4 book ai didi

ios - 用于在页面上显示的 UIPageViewControlerDataSource 和 UiWebView

转载 作者:行者123 更新时间:2023-11-29 04:09:23 26 4
gpt4 key购买 nike

我想使用 UIPageViewControllerUIWebView 开发一个 ePub 阅读器应用程序来显示图书页面。因此我可以通过使用 JavaScript 字符串执行偏移来制作不同章节的页面。

问题是如何以正确的方式实现UIPageViewControlerDataSource delegate?当我准备一些页面进行显示时,我应该使用 UIWebView 方法和 UIWebView delegate 方法,这些方法仅在 webView 位于屏幕上时才起作用。我尝试在 pageViewController 下创建底层 webView 来使微积分与 ePub 章节分页链接,但我无法在页面上拖动加载的内容。

有人知道它是如何在 iBooks 或相同的应用程序中实现的吗?

最佳答案

一个简单的解决方案可能是:

  • 子类UIPageViewController ,使其符合UIPageViewControllerDataSourceUIWebViewDelegate协议(protocol)和设置self作为 -viewDidLoad 中的数据源覆盖
  • 实现pageViewController:viewControllerAfterViewController:pageViewController:viewControllerBeforeViewController: (UIPageViewControllerDataSource 协议(protocol)方法)以便它们返回一个新的 UIViewController包含UIWebView显示您的数据。

    - (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
    {
    UIViewController *vc = [[UIViewController alloc] init];
    UIWebView *webview = [[UIWebView alloc] init];
    webview.delegate = self;

    // Here you can call - (void)loadData:(NSData *)data MIMEType:(NSString *)MIMEType textEncodingName:(NSString *)encodingName baseURL:(NSURL *)baseURL
    // to load your web page as you need

    vc.view = webview;

    return vc;
    }

当然,您必须完成代码 stub 。您应该设置一种机制来区分 viewController,以便能够返回下一页和上一页(即,我使用声明 pageNumber 属性的 UIPageViewController 子类来执行此操作,但我确信有更优雅的方法可以做到这一点。 )

关于ios - 用于在页面上显示的 UIPageViewControlerDataSource 和 UiWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14661433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com