This domain may be for sale!
iPhoneシミュレータには、GPS機能はないので、Core Locationが実機と同等に使えないのは当然ですが、知らないとハマることもあるので、メモを兼ねて、書いておこうと思います。 iPhoneシミュレータの制約 常に、同じ位置情報が返ってくる。 その値は、北緯37.33168900、西経122.03073100です。 ほぼ想像がつくかもしれませんが、これが示している実際の場所を知りたい方は、以下のリンクをクリックしてみてください。 37.33168900,-122.03073100 - Google マップ 以下のドキュメントに、このことが説明されていますね。 http://developer.apple.com/iPhone/library/documentation/Xcode/Conceptual/iphone_development/125-Using_iPhone_Sim
単純にインジケータを表示する方法を紹介したいと思います。 ここで使用するのはUIProgressHUDです。 これを使うと、インジケータと文字をセットしたRoundRectな黒半透明のダイアログのような感じに表示出来ます。 まずはinterfaceの用意 @interface UIProgressHUD : UIView { } - (void)setText:(id)fp8; - (void)showInView:(id)fp8; - (void)hide; @end ViewControllerのヘッダなどにUIProgressHUD *progressHUDを追加してください。 とりあえず分かりやすいようにViewDidLoadに書いてしまいます。 - (void)viewDidLoad { [super viewDidLoad]; CGFloat w = self.view.fra
iPhone SDKで画面の遷移のやり方がやっとわかりました。 一度わかってしまえばなんてことないのですが、今までの経験(VB,Swing,Android...etc)が全く通用しないので苦労します。 Interface Builderの使い方にもようやく慣れてきました。 道のりはまだまだ長い...。 ちなみにやり方はUIViewControllerのボタンクリックイベントで以下のようにするとできます。 -(IBAction)chengeScreen:(id)sender { HogeViewController *modalViewController = [[[HogeViewController alloc] initWithNibName:@"HogeControllerView" bundle:nil] autorelease]; [self presentModalViewCo
AppDelegateオブジェクトでUIViewControllerのインスタンスを生成してaddSubViewすると画面表示が切れるという現象に悩まされてます。 @interface AppDelegate : NSObject { UIWindow *window; UIViewController *viewController; } @property (nonatomic, retain) IBOutlet UIWindow *window; @property (nonatomic, retain) UIViewController *viewController; @end @implementation AppDelegate @synthesize window; @synthesize viewController; - (void)applicationDidFini
テーブルに表示されるデータのレイアウトを少しかえたい時や項目を追加したい時なんかに便利です。 UITableViewControllerを継承したクラスまたはUITableViewDataSourceとUITableViewDelegateプロトコルを実装したクラスのtableView:cellForRowAtIndexPath:メソッドで以下のようにすればOKです。 #define LABEL_TAG 1 #define VALUE_TAG 2 #define CELL_ID @"Cell" - (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath { UILabel *label, *value; UITableViewCell *cell = [tv
iPhone/iPod Touchのメールアプリ(Mail.app)で使用されている「次へ」ボタンと「戻る」ボタンの実装方法です。 ナビゲーションバーにUISegmentedControlを追加するのが基本的な実装方法です。 @implementation SampleViewController - (void)viewDidLoad { NSArray *array= [NSArray arrayWithObjects: [UIImage imageNamed:@"UIBarButtonPrev.png"], [UIImage imageNamed:@"UIBarButtonNext.png"], nil]; UISegmentedControl *segment = [[[UISegmentedControl alloc] initWithItems:array] autorelea
UITableViewの行選択時のハイライトって普通にUITableViewControllerを使っているときは問題ないのですが、うっかりviewWillAppear:メソッドをオーバーライドしたりUIViewControllerを使ったときなんかにハイライトが解除されなくて困ることがよくあります。ハイライトの解除をキチンとやっておかないとApp Store登録時にリジェクト喰らうこともあるらしいのでそんなことにならないように行選択時のハイライトについてまとめてみました。 UITableViewControllerを継承してUITableViewを使う時に気をつけること UITableViewControllerのviewWillAppear:メソッドにはハイライト解除の処理が定義してあります。なのでviewWillAppear:メソッドをオーバーライドするときは必ず親クラスのviewW
最近、Apple App Storeにアップされるアプリで、Cover Flow Viewを実装しているように見えるものが多くなったように思う。 Cover Flow ViewはApple非公開のAPIで正式な使用は認められていないと思っていたが、Appleの審査基準が緩くなったのだろうか? Erica Sadun著のThe iPhone Developer's CookbookでCover Flow Viewが紹介されているため、それで増えたのだと思う。 しかし、私の実感としては、最近、Appleの審査基準がきびしくなったように思える。 以前であれば、OKであったものも、最近はささいなことでRejectされることが多い。 Cover Flow Viewを実装しているアプリはアップデートのタイミングでAppleからRejectを言われるかも知れない危険をはらんでいると思う。 最近、Appl
一番簡単な方法は、 System.IO.StreamReader reader = new System.IO.StreamReader("hoge.txt", Encoding.GetEncoding("Shift_JIS")); string line = reader.ReadLine(); Console.WriteLine(line); reader.Close(); ストリームを使ったやり方はこれ。 System.IO.Stream stream = new System.IO.FileStream("hoge.txt", System.IO.FileMode.Open); System.IO.StreamReader reader = new System.IO.StreamReader(stream, Encoding.GetEncoding("Shift_JIS"));
サンプルコードのSQLiteBooksを参考にしながら、 DBに登録したデータをTableViewに表示する部分を実装中。 FirstViewController.mにTableView関連の処理を記述した後に、 TableViewのOutletのdataSourceとdelegateにFirstViewControllerを接続しようとしたが どうして良いかわからず悩んでいた。 xibファイルを普通に表示するとFirstViewControllerが表示されていないので Tab Bar Controllerに接続するのかと思いやってみたが正常に動作せず いろいろ試してみたがうまくいかずハマり。 いろいろ試してToolsメニューのReveal In Document Windowsを選択すると xibファイルが下記のように表示されFirstViewControllerが表示された。 ここで
iPhone向けWebページで、自動的にスクロールさせてアドレスバーを隠したい場合、以下のようなコードを書くことが多い。 <script type="text/javascript"> window.onload = function() { setTimeout(scrollTo, 100, 0, 1); } </script> でもこれだと、Backボタンで戻った時にも強制スクロールされてしまい、見づらいサイトになってしまう。 初回表示時(手動でスクロールさせていない状態の時)のみスクロールさせたい場合は、以下のようにすれば良いらしい: <script type="text/javascript"> function doScroll() { if (window.pageYOffset === 0) { window.scrollTo(0,1); } } window.onload
iPhone Appのサンプルコードは ここ http://developer.apple.com/iphone/library/navigation/SampleCode.html ここには下記のサンプルコードがあります。 oalTouch aurioTouch Accessory Reflection URLCache TouchCells SQLite Book List AppPrefs Scrolling CrashLanding TableSearch CryptoExercise MoviePlayer SimpleDrillDown SysSound HeadsUpUI HeaderFooter SpeakHere WiTap LocateMe TableViewSuite TheElements WhichWayIsUp Metronome HelloWorld UICa
昨日の続きで、「New Book」画面の表示はどのように実装されているのか追ってみる。 New Book画面 この画面をどのように表示しているのか調べてみる。 New Book画面の表示処理 New Book画面の表示処理は AddViewControllerのスーパークラスのDetailViewControllerで実装されている。 表示項目数 表示項目は、Title、Copyright、Authorの3項目、 下記のメソッドで表示項目数を固定で返している。 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tv { // 3 sections, one for each property return 3; } 入力値 ここではbookの値をcell.textに設定しているが、「+」ボタンのアクションの MasterView
「Book List」画面の「+」ボタンのアクションは、MasterViewControllerのaddBookになっている。 MasterViewController.m - (IBAction)addBook:(id)sender { AddViewController *controller = self.addViewController; controller.book = [[[Book alloc] init] autorelease]; if (addNavigationController == nil) { UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:controller]; self.addNavigationCon
入力画面 Book Listの「+」ボタンを押下すると入力画面が表示される。 「Save」ボタン押下時に実行されるメソッドは? DBへのインサートはBookのinsertIntoDatabaseメソッドで処理しているようだ。 insertIntoDatabaseを呼んでいるのは、AddViewControllerのsaveメソッド。 実際にそのように動いているのかデバッグ文を追加し確認してみる。 Book.m - (void)insertIntoDatabase:(sqlite3 *)db { NSLog(@"Book#insertIntoDatabase") ; database = db; // This query may be performed many times during the run of the application. As an optimization, a
アプリケーション起動時にDBからデータを読み込んでいる部分のソースを確認する。 AppDelegateのinitializeDatabaseメソッド applicationDidFinishLaunchingメソッドの中から呼ばれているinitializeDatabaseメソッドは何をやっているのか? DB(bookdb.sql)に接続し、取得したデータをself.booksに格納しているようだ。 アプリケーションの起動時にbooksにデータを読み込み、MasterViewControllerでbooksからデータを取得し画面に表示しているようだ。 AppDelegate.m // Open the database connection and retrieve minimal information for all objects. - (void)initializeDatabase
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く