サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
WWDC25
programmershigh.org/~marvel
僕の所にもiPadが届いたので、ScanSnapで読み込んでおいた技術書(PDF)と、漫画(ZIPアーカイブに固めた画像ファイル)を転送して閲覧してみました。 重いです。特にPDFが。 最初から電子化されている書籍であればベクトルデータのPDFは軽いと思いますが、スキャンした書籍はビットマップ画像の固まりなので、ファイルサイズからして巨大になり、閲覧が重いです。 ただし同じ書籍で比較すると、PDFよりもZIPアーカイブの方が軽いようです。 閲覧にはCloudReadersを使っているのですが、出来ればiBooksを使いたいです。 なによりも、書籍をiTunesで管理したいのです。 そこでZIPアーカイブを、ePubに変換してみる事にしました。 まずPDFの場合はZIPアーカイブに変換する所からになりますが、こちらにすばらしい解説があります。 Desire for wealth Sca
僕は技術書をScanSnapで読み取り、PDFとして電子化しています。Mac上で閲覧する時はそのままで問題がありませんが、iPadに転送する場合などは、ページ単位の画像ファイルに変換してから、ePubなどに再構成しています。 この画像ファイルに変換する作業は、Automatorを使ってページ単位でJPEG画像にレンダリングを行っていたのですが、非常に時間がかかる上に再圧縮の過程で劣化します。 元々ScanSnapはビットマップ画像として読み込みを行っているので、PDFの中にはページ単位のビットマップ画像データが存在するはずです。これをそのまま切り出せば、短時間に無劣化で画像ファイルへの変換が可能になるはずです。 PDFからのビットマップ画像の取り出し 調べた所、Xpdfに含まれるpdfimagesコマンドで抽出可能な事が解りました。XpdfはMacPortsでインストールするか、ここで配
UITableViewをタップすると、行がハイライト表示されます。背景は青く、文字は白く。 これはタップを検出したときに、UITableViewCellのsetHighlighted:animated:が呼び出された時の応答です。 ここに、若干の謎があります。 通常UITableViewCellはサブビューとして、UIImageViewやUILabelを持っています。この二つのクラスは、setHighlighted:というメソッドを持っているので、それが呼び出されているのでしょう。 しかし、UIViewならどんなクラスであってもサブビューとして追加できる事を考えると、これは妙です。 サブビューのクラスが上記二種類かどうか判定しているような、残念な実装かもしれせん。 少なくても、UIHighlightableなどというプロトコルも、見当たりません。 これは、独自のUIViewのサ
iPhone 3.0になって、UINavigationControllerがUIToolbarを管理してくれるようになりました。UIToolbarを自前で管理しようとすると、UIViewControllerの管理するviewを階層化する必要があったり、その影響でUITableViewControllerが使えなくなったりと面倒な事が多かったのですが、UINavigationControllerに任せるとかなり楽になります。 具体的には、次のような事をやってくれます。 UINavigationBarのように、UIToolbarをUIViewControllerの管理するviewの外側で管理してくれる viewの階層構造が複雑化しませんし、UITableViewControllerも使えます。 UINavigationBarのように、UIToolbarに含まれるUIBarButtonIte
なぜなら、項目を何件でも表示できるから。 iPhone OS 2.xまでのUIActionSheetは、項目の件数が増えると画面上にはみ出してしまって、ボタンが押せなくなってしまう限界があり、件数に限界がありました。 iPhone OS 3.0のUIActionSheetはこの部分が改良されて、はみ出る時は自動的にリスト表示に切り替わります。 この投稿は 2009年9月7日 月曜日 22:32 に Develop カテゴリーに公開されました。 この投稿へのコメントは RSS 2.0 フィードで購読することができます。 コメントを残すか、ご自分のサイトからトラックバックすることができます。
UIPickerViewに右端にアイコンの付いた行を表示したり、左端にチェックマークの付いた行を表示したい場合、1行分のUIViewを組み立てて、pickerView:viewForRow:forComponent:reusingView:から返す必要があります。 さほど面倒ではありませんが、見栄えをキチンと揃えるにはそれなりの手間がかかります。 しかし良く考えると、この要求仕様はUITableViewCellに非常に近い事が判ります。 試しに実装してみましたが、非常に良好です。 - (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { UITableViewCell
諸々の事情で、UITableViewを制御する時にUITableViewControllerを使えない場合があります。たとえば、トップビューがUITableViewでは無くUIViewで、サブビューにUITableViewが配置されている場合などです。iPhone OS 2.x時代であれば、UITableViewの下にUIToolbarを配置するケースが該当します。 このような場合、UIViewControllerのサブクラスにUITableViewController相当の機能を実装する必要があります。概ね、下記を実装すれば遜色ない動作をするようです。 viewWillAppear:をオーバーライドして、UITableViewのreloadDataを呼び出し、データをリロードする。ただし初回のみ。メモリワーニングでビューがアンロードされた場合は再度リロードが必要になるので、viewDid
iSCSIを使ったネットワーク越しのTime Machineが安定しなかったので、次はSambaで共有しているネットワークドライブにTime Machineでバックアップを試す事にしました。 まずTime Machineの設定を弄って、未サポートドライブにバックアップできるようにします。 defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1 この状態で共有しているサーバのボリュームにバックアップを行った所、イメージファイルの作成に失敗してバックアップが始まりませんでした。 そこでディスクユーティリティを使い、あらかじめイメージファイルを作ってやるとうまくきました。 この時、イメージフォーマットはスパースバンドル・ディスクイメージを選びます。 またボリュームサイズは、適当に大きめのサイ
このページを最初にブックマークしてみませんか?
『programmershigh.org』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く