我是新来的ios编程。 我遇到的问题是我已经在我的xib文件中设置了一个工具栏,但运行应用程序后,工具栏不显示。 我已经在viewDidLoad函数和delegate.m类中添加了这两行,但仍然没有显示工具栏 self.navigationController.toolbarHidden = NO; 这是我的代码 – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSArray *languages = [userDefaults objectForKey:@"AppleLanguages"]; EPubViewController *epubView = [[EPubViewController alloc] init]; [epubView loadEpub:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"AtoZbook" ofType:@"epub"]]]; self.navigationController = [[UINavigationController alloc]initWithRootViewController:epubView]; self.navigationController.toolbarHidden = NO; self.window.rootViewController = self.navigationController; [self.window makeKeyAndVisible]; return YES; } EPubViewController.m – (void)viewDidLoad { [super […]
我想在我的阅读表中显示epub文件的封面图片。 在我的iOS应用程序中,我添加了“Open In”支持epub文件。 所以,当我导航到我的书阅读应用程序,我想先在书架上显示书籍的封面图像,然后要加载该书。 请帮助我从epub书籍获取封面图片在iOS应用程序。
我正在IOS平台上创build一个epub阅读器。 基本上,它使用UIWebview来显示epub文件,我读了开源的Aepubreader的代码,发现它非常好,但不是基于文本。 我想使它基于文本和页面转向像iBooks。 所以我尝试改进Aepubreader 基本的逻辑stream程是 解压epub文件。 parsing元数据(opf,toc文件)。 通过UIWebView加载html文件并将其绑定到UIPageViewController 除了表演,一切都很好。 假设epub有十个html文件(file1 – file10)。 file1〜file9是小尺寸(如100k),但是文件10是1MB。 当我读到file10的第一页时,加载这个1MB文件花费了很多时间。 这是可以接受的,因为这是第一次。 但是当我转到file10的第二页。 我仍然需要再次加载这个1MB的文件,然后调用一个js按页码滚动offsetx(无法为每个Apple官方文档复制一个UIWebView)。 这是不可接受的。 当这个文件翻页时,我不能让用户总是等待。 最后我得到了一个解决scheme,以避免重新加载这个大文件。 当我得到第一页的文件10显示。 我将这个可见的视图作为一个图像捕获,但不显示它,当我转到下一页,我显示这个图像的page1,同时,我把UIwebview从页面1到页面2。 像Page2.view.addSubview(webviewfrompage1)。 这将避免重新加载webview并节省时间。 但是,另一个问题来了,Page2.view.addSubview(webviewfrompage1)将导致page2 layoutsubview,这意味着page2将重绘其视图以显示webview内容。 这是一个1MB的文件内容,重绘仍然花费时间,它会卡住翻页animation。 我搜查了很多,但仍然没有解决办法。 我检查的iBooks,它的作品完美。 那大文件是怎么回事? 请让我知道,如果你有任何想法。 或其他解决scheme来处理epub显示。 提前致谢 ————————————————– ——————————————- 回复torazaburo: 是的,你是对的。 我打算使用window.scroll(offsetX,offsetY)来获取下一页的内容。 但这还不够。 我想要像ibooks那样的翻页animation。 所以我使用UIPageViewController。 使用UIPageViewController意味着我必须实现以下两个代表 – (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {} (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController { […]
我打算开发iOS设备的ePub阅读器。 我不想为此使用webView。 在这个应用程序中,我想要的function,如iBook或节应用程序。 我想知道,在开发Stanza应用程序中使用哪种方法。
我在这里也问过这个问题,但是我没有得到任何解决办法。所以我在这里再次问及完整的解释。 我从这里下载了EPUB Reader库。 当我运行这个库,首先来到一个表格视图,其中包含四个值的EPUB,PDF等行,并点击“EPUB”行书成功出现顶部的工具栏。 因为我必须首先加载图书,而不是显示工具栏,我对代码做了一些修改。 从didSelectRowAtIndexPath复制一些代码,并将该代码添加到delegate.m中。 所以现在的问题是书是成功加载,但工具栏不显示 这是我的代码 – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; NSArray *languages = [userDefaults objectForKey:@"AppleLanguages"]; EPubViewController *epubView = [[EPubViewController alloc] init]; [epubView loadEpub:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"AtoZbook" ofType:@"epub"]]]; self.navigationController = [[UINavigationController alloc]initWithRootViewController:epubView]; self.window.rootViewController = self.navigationController; [self.window makeKeyAndVisible]; return YES; } 加载epubView的代码位于原始库的RootViewController.m中 – (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { […]
我怎样才能打开一本关于iBooks的书? 我尝试了下面的代码,这是有效的,但要求用户select一个应用程序来打开文件: self.docController = [UIDocumentInteractionController alloc]; //leaves only the file name NSString *bookFile = @"my-book.pdf"; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex: 0]; NSString* filePath = [documentsDirectory stringByAppendingPathComponent: bookFile]; // Using the Book path self.docController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:filePath]]; // setting the delegate _docController.delegate = self; // open the menu only […]