iPhone OS 3.0〜3.2.1用のカスタマイズ可能なステータスバー時計「StatusBarCustomClock」というのを作ってみました。
iPhone OS 3.2.1でも動くということは、iPadでも使えるということです。
iOS 4.0用は以下にあります。
iOS 4.0用カスタマイズ可能ステータスバー時計StatusBarCustomClock4
設定で書式を変更できます。(続きは[MORE]から)
※スクリーンショットは、ほぼデフォルト設定
履歴
- 0.5-1 2010.08.11 CPU使用率を下げる修正。また、求める設定とCPU使用率に応じて更新間隔などが調整できるように設定項目を追加(参考)
- 0.4-2 2010.08.04 iPhone OS 3.2.1対応パッケージ修正
- 0.4-1 2010.07.23 TXTでテキストを埋め込む場合に「R」、「FM」を展開してしまう問題に対処
- 0.3-1 2010.07.22 iPhone OS 3.2対応、いくつかの機能を追加
- 0.2 2009.08.08 1秒ごとに表示を更新するように
- 0.2 2009.08.08 初版
既知の不具合
- StatusBarCustomClockはSBSettings等による時計書式変更機能と排他利用になります。共存できません。
- 内部的な文字幅はデフォルトの「00:00」のままなので、あまり長いと他の表示物とかぶってしまいます。これも、文字幅を変更する方法が分からないからそうなっています。SBStatusBarTimeViewのCGRect _textRectというインスタンス変数を変更すれば直りそうですが、object_setInstanceVariableだとCGRectにアクセスできず、それに代わる方法が分からなくて困っています。
設定項目解説
- Refresh Interval: 表示の更新間隔です。更新間隔を短くするとCPU使用率が高くなる傾向にあります。CPU使用率が高くなると、バッテリ持続時間に影響を与える可能性があります。「System Default」は恐らく1分間隔と同義です。CPU使用率についてはStatusBarCustomClock4のエントリを参考に。この項目だけはテストモードに入っても変更が準リアルタイムに反映されず、respringが必要です。
- Date Format: 時計の書式です。デフォルトは「M/d EE HH:mm FM」。書式は「Unicode Technical StandardのLOCALE DATA MARKUP LANGUAGE (LDML)の「Date Format Patterns」」を参照してください。拡張の書式として「R」、「FM」、「TXT」の三つがあります。「R」は六曜、「FM」は空きメモリ容量、「TXT」は設定項目「Text File Path」のテキストファイルの中身に置換されます
- Text File Path: 「TXT」によって置換されるテキストファイルのパスです。エンコーディングはUTF-8にしておく必要があります。この項目だけ10秒に1回の更新です。もちろん、テキストはdaemonなどに自動更新させることを想定しています
- Locale: 書式のロケール設定です
- Font Color: 色指定。CSSの色表現が使えます
- Font Family: フォント指定。何らかの手段でシステムにインストールされているフォント名を調査する必要があります
- Font Weight: フォントのウェイト指定。CSSの表現が使えます
- Font Size: フォントのサイズ指定。CSSの表現が使えます
- X Offset: 時計の表示開始X座標。プラスの整数を指定すると右にずれます
- Y Offset: 時計の表示開始Y座標。プラスの整数を指定すると下にずれます
- Test Mode: オンにし、リスプリングするとテストモードへ移行します
メモリ空き容量算出についてはFujikawaさんのplist.appを参考にさせていただきました。
この場をお借りしてお礼申し上げます。
http://ero.movie.coocan.jp/iPhone/plist/
CPU使用率について
設定次第ではCPU使用率が高くなり、バッテリ持続時間に影響を与える可能性があります。
この問題と、0.5から追加された設定項目「Refresh Interval」については、StatusBarCustomClock4の解説を参考にしてください。
iOS 4.0用カスタマイズ可能ステータスバー時計StatusBarCustomClock4
StatusBarCustomClockにbuzztter、円相場など、様々な情報を表示する
iPadのステータスバーにbuzztterや円相場を表示
テストモードについて
テストモード中は、設定を1秒毎に読み直しているので、設定が比較的リアルタイムで反映されます。しかし無駄な処理なので、普段はオフにしておいてください。オフにしておくと、オンメモリで処理されるので余計な負荷がかかりません。
設定を変更してもすぐに反映されないことがあると思います。反映させるには、設定の別項を編集状態にするか、いったんStatusBarCustomClockの設定から上の階層に抜けます。
キャリア名を消す
StatusBarCustomClockを使うとステータスバーが手狭になります。
MakeItMineというCydiaからインストールできるアプリケーションでキャリア名を消すことができます。
これは、/var/mobile/Library/Preferences/com.apple.springboard.plistに以下を追加する、ということをやっています。<string></string>の中身を空にすればキャリア名が消せます。
<key>SBFakeCarrier</key>
<string>hoge</string>
動作環境
- iPhone OS 3.0
- iPhone OS 3.0.1
- iPhone OS 3.1
- iPhone OS 3.1.2
- iPhone OS 3.1.3
- iPhone OS 3.2
- iPhone OS 3.2.1
iOS 4.0用は以下にあります。
インストール
インストールは、いつものNew野良リポジトリから「StatusBarCustomClock」で検索してください。
例によって安定性等は保証するところではないので、そのつもりで使ってください。
無保証、無サポートです。
-
iPad, iPhone, Jailbreak, ガジェット