I'm looking for ways to implement text selection over a parsed PDF in iOS. I already have the positions of all the glyphs by using the Quartz PDF parsing functions, but I don't know of a good way to implement the selection of the text without writing the selection logic and view from scratch (And display it either in the view displaying the pdf or in some transparent overlay view).
The experience should be similar to selecting text in a UITextField or UIWebView (for example).
Existing 3rd party solutions which I could integrate would be best.
Found the Omni framework, which implements a similar selection.
Related
UITextView does not support any kind of tables, but I'm trying to create a text view implementation which would be able to show tables alongside normal text.
Basically: My macOS port uses NSTextTable to render some paragraphs next to each other when creating a PDF. I'm trying to come up with a way to achieve this on iOS.
Documentation and real-world implementations of TextKit 2 are still a bit hazy, but I'm interested if it would be possible to create my own content types using NSTextElement and NSTextElementProvider. If I'm reading it correctly, I'd define a range which is governed by my own implementation/layout?
As the documentation is so sparse, I'm very unsure how to actually implement an NSTextElement which would also be rendered as text when saved as a PDF — or if any of this would even be possible.
Any help or hints would be appreciated.
I am implementing popup with word helper (I fetch array of word from
my xml file) when user edit text in UITextField.
I can implement this using UITableView & also using third part
library example
http://code4app.net/ios/SGPopSelectView/54783371e24741234bb03ca0
My Query: IS their any good third party UI pop up library available to do so?
https://github.com/50pixels/FPPopover looks better. The another one http://code4app.net/ios/ZSYPopoverListView/51aae6396803fa3e0f000002 also looks good but not perfect.
I want to show a variable text on my universal iOS application. I load the texts from SQLite DB as NSString and almost each line of the text has separated atributes like Color. So I need to use AttributedText. Also I want to support both ios 7 and ios 7 and also in future iOS 8.
I noticed that there is two general ways: 1- Using UITextView 2- Using UIWebView.
I am wondering what is the advantages and disadvantages of using above features and witch of the is better for showing long length and very attributed text. And also is there any other solution for showing this texts.
The biggest advantage of using UIWebView is that you can render an HTML content through it -- any HTML content, since it is backed by WebKit.
On the other hand, UIWebView will add a noticeable delay from the moment when you add it as a subview to the moment when it will have finished to render the HTML.
You could also give a look at alternatives like RTLabel and others that you may find on GitHub. RTLabel is built on top of Core Text and supports HTML-like markup.
EDIT:
Some of them are about 40000 characters. It should be about 1000 paragraphs and each paragraph 1 line.
My suggestion is to go for some kind of paging to let the user move comfortably through all that text (40k chars would be like 25-30 book pages). This would improve UX and it would also make feasible the implementation through a UITextView -- performance-wise.
If you do not want paging and want just one scrolling view, then UIWebView could be better for your case since it should also do some kind of optimisation regarding portions of the page that are not displayed.
Finally, as a side node, since you specify that your text has a fixed structure (1000 40-chars lines), another option which you could consider is using a UITableView for this, provided that you can display each paragraph in a single cell row. This would be the most efficient solution since you have short pieces of text and the table view to handle their allocation/deallocation based on which ones (usually a small subset) are displaying.
I cannot select/highlight text in my PDF reader (when you press and hold text). I used the following to open/read PDF documents
http://developer.apple.com/library/ios/#samplecode/ZoomingPDFViewer/Listings/Classes_PDFScrollView_m.html#//apple_ref/doc/uid/DTS40010281-Classes_PDFScrollView_m-DontLinkElementID_4
Actually, with iOS5, Apple added support for text selection in UIWebView.
Unfortunately, there's no API for this, and their support is rather clunky and slow. And embedding UIWebView's into your app is a rather ugly solution. (and you can hardly control the UI)
You might wanna check out 3rd party iOS frameworks for that feature. https://stackoverflow.com/questions/3801358/pdf-parsing-library-for-ios
I worked the better part of year to roll my own PDF parser that calculates the glyphs to get text selection. (it's commercial, google for PSPDFKit)
I'm working on an iOS app in which I need to implement a basic text view with these requirements:
Rich text
Font emphasis (bold, italics).
Inline images for hyperlink-like actions.
Scrolling
Getting and setting the scroll offset (for remembering the previous scroll position).
Text selection
Getting the selected text character range.
Scrolling the view when selecting text, if needed.
I believe I could achieve this with UIWebView but the problem with this is that it provides very little control and is somewhat slow and shows a blank screen while loading. I was wondering if this could be achieved with Core Text but regarding the text selection I'm not sure. I'm hoping to achieve as iOS-native behaviour as possible.
What I'd need is pretty much like Instapaper's text view.
OmniGroup have done something like this by creating a text editor much like UITextView which draws the text using Core Text but also has all the editing features of UITextView as well as Rich text features from Core Text.
You can find it here.
There are some answers about this in StackOverflow, for example: Core text tutorial
However the best tutorial I ever read about Core Text in iOS is not listed in any answer I've found: How to create a simple magazine app with core text
Please notice that CoreText is only available for iOS 3.2 or superior.