2010-11-17 2 views
8

XML dosyalarından metin verileri alıyorum ve iPad'de UIWebView içinde kitap sayfası benzeri biçimde görüntülenmesini istiyorum. XML dosyaları bir .epub'dan çıkıyor ve her biri, yalnızca p etiketleriyle bölünmüş bir kitabın tek bir bölümünü içeriyor.Ereader-Style Pagination

Bu dosyaları, tam olarak iPad ekranının yanı sıra kullanıcı tarafından seçilen yazı tipi boyutu olan UIWebView boyutuna göre kitap benzeri sayfalara dinamik olarak sayfalamak istiyorum. Şu anda, UIWebView içine ilgili css ile boş bir html sayfası yüklüyorum, XML'den Dizeler olarak karakter sayısını temel alan paragrafları alıyorum ve bunları StringByEvaluatingJavaScriptFromString ve innerHTML özelliğini kullanarak html'ye yazdırıyorum.

Açıkçası, bunu karakter sayısına göre yapmak, hatalı aralıklı, garip biçimde biçimlendirilmiş sayfalar oluşturur, ancak metnin nasıl "paginate" olacağından emin değilim.

Yapmaya çalıştığım şey, iPad'de "eReader" uygulamasıyla ilgili bir şey: http://www.ereader.com/. Tek bir dosyayı dinamik olarak sayfalara ayırıyor ve onu UIWebView s'ye yüklüyorlar. Bu nasıl yapılır?

cevap

2

UIWebView tabanlı çoğu EPUB okuyucusu, belgeyi sayfalandırmak için yalnızca CSS3 Sütunlarını kullanır.

Temel fikir, belgeyi 'columnize' ve daha sonra belirli bir sayfayı göstermek için içinden yatay kaydırma olduğunu http://www.quirksmode.org/css/multicolumn.html

de eylem görebilirsiniz.

iPhone ve iPad'deki bir popüler (Kanadalı) e-Okuyucu uygulaması için bunu yaptığınızda, tekniğin çalıştığını söyleyebilirim, ancak bunun ideal olmaktan uzak olduğunu söyleyebilirim.

+0

Bu çok ilginç ve kesinlikle faydalıdır. Takip eden sorular şu şekildedir: CSS "tüm bölümü" sütunlarsa, sayfa numaralarını, vb. Dinamik olarak değiştirmek için DOM üzerinden sütun içeriğine erişmenin ve düzenlemenin bir yolu var mı? Ek olarak, kullanıcının görünümünde yatay olarak serbestçe kaydırmasını nasıl engellersiniz, böylece bir seferde bir sayfaya bakmaları için "kilitlenir". – Chris

+0

Ayrıca, daha geniş bir sütun genişliği (örneğin, bir iPad penceresinin boyutu hakkında) istediğinizde CSS3 sütunları garip davranır. Senin çözümün nedir? Burada ayrı bir soru sordu: http: //stackoverflow.com/questions/4217936/css3-columns-and-uiwebview – Chris

+0

gerçekten ilginç bir yaklaşım. Bu yaklaşımı kullanarak EPUB'un yerleşik sütunlarını kullanabilir misiniz, yoksa daha sonra 'sayfalandırma' hilesini bozar mı? –

1

Bu kod zaten hazırlanmıştır. Epubjs denir. Javascript sadece epub okuyucu.

+0

Bu oldukça havalı. Svn'yi kontrol ettim ve birkaç farklı .epub ile koştum. Sorun, dosyaları Xcode'a aldığımda ve UIWebView yük indeks.html yüklendiğinde, her şey ayrı düşüyor. sadece bilgi etiketi içeriği görünür ve stil yok. – Chris

+0

Motorola, Jquery, vb. Pürüzsüz kaydırma işlevlerini kullanmak başka bir seçenektir. Web sayfanızı birden çok sütunda gezdirin ve sonra karma etiketlere göz atın. Bir web sayfasındaki herhangi bir içeriğe kaydırma Jquery web sitesinde güzel bir demo var. –

0

PageViewController ile UITextView kullanın. (eğer varsa, şüphelerinizi belirtin)

İlgili konular