initWithImage: を使うと白抜き表示になる? UIBarButtonItem にはカスタム画像用に initWithImage:style:target:action: が用意されている。これを使えば簡単にカスタム画像をツールバーに表示できる、わけではなかった。 [[[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Icon"] style:UIBarButtonItemStylePlain target:self action:@selector(openKarteList:)] autorelease]; 普通にこんな画像を用意して
iPhone/iPad,Android,WordPress,PHPなど、日々の活動で面白かったことや気付いたことなどを書き込んでいきます。iOS5環境でUIViewControllerにナビゲーションバー(UINavigationBar)とツールバー(UIToolbar)をやっと追加できました。書籍とかネットで調べてもなかなか見つからず、試行錯誤してようやく実現できました。 ただ、ソースコードの美しさ的には、ちょっと難がありまして、もやっとした気分です。 一応以下にサンプルコードを紹介します。 // タイトルの設定 self.navigationItem.title = @"タイトル"; // タイトルの右側にボタンを作成 UIBarButtonItem* navRightItem = [[UIBarButtonItem alloc]initWithTitle:@"右側" style:UI
[Cocoa] NSMutableArrayのインスタンスを”Mutable”なまま複製したいときは”mutableCopy”メソッドを使おう photo credit: alberthuynhphoto iPadアプリの開発をしていて少しハマってしまったのでメモ。 最近よくハマるので、どんどんブログ記事にしてまとめていきたいと思います。 問題 NSMutableArrayのインスタンス(つまり変更可能な配列)を複製して、複製先の配列にオブジェクトを挿入しようとしたときのことです。 下記のようなコードを実行すると途中で例外が発生し、プログラムが停止してしまいました。 NSMutableArray* originalArray; NSMutableArray* duplicatedArray; originalArray = [[NSMutableArray alloc] init]; du
2012年04月20日20:05 by idyn NSArrayはNSMutableArrayにキャスト可能か? カテゴリiPhoneアプリ開発 ツイート 結論からいうと、キャスト演算子での変換は不可能です。 (NSArray←→NSMutableArrayの変換自体は可能です。後述します。) キャストした場合でも基本的には意図通り動作するのですが、たまに不具合が起きます。 例えば、要素が1つのNSArrayをNSMutableArrayにキャストして NSMutableArray *array = (NSMutableArray *)[NSArray arrayWithObject:@"test"]; [array removeObject:@"test"]; のようにremoveObject:メソッドを呼び出すと、SIGABRTシグナルと共に以下のエラーが出力されます。 (面白いことに
ゲーム、エンタメサービスの開発会社、 株式会社アールフォース・エンターテインメントから、 ゲーム開発ゲンバの生の声をお送りします。 こんにちは。 火曜日担当の十万石饅頭です。 ↓このiPhoneアプリ、涼しげでいいな~と思いました。 AppStoreでも度々おすすめとして紹介されていたので、 ご存知の方も多いかもしれません。 ゲーム要素はありませんが、金魚と水面がよく動いていて とても魅力的です。餌もあげ放題ですよ。 欲を言えば、時計機能が付いていれば趣のある時計としても 使えていいんじゃないかな、なんて思います。 さて、前回にObjective-Cの「retain」というものを紹介しました。 インスタンス変数として宣言したNSMutableArrayの変数に対して 使用し、「オブジェクトの保持と解放についてソースの編集者が責任を持つ」 ことを設定していました。 今回はそのretainで引
November 15, 2010 コレクションのコピー 『はじめてのiPhoneプログラミング』の本文中で、『NSMutableCopyingのコピーは浅いコピーなので〜』の説明が足りない気がしたので調べてみました。 オブジェクトのコピーとしては『浅いコピーと深いコピー』として『詳解 Objective-C 2.0』に解説があるのですが、辞書の場合についてもう少し知りたくて検索した所『Collections Programming Topics』というリファレンスがありましたので、『Copying Collections』の項を訳してみます。 ●コレクションのコピー オブジェクトのコピーには浅いコピー(Shallow copy)と深いコピー(Deep copy)の二種類があります。 通常のコピーは浅いコピーで、新しく生成したコレクションの所有権は元のオブジェクトと共有しています。 深いコ
こんなAPIを待っていた! ダブルタップとか、スワイプとか、ピンチインとか自力で判定すると結構めんどうなんですよね。でも、iPad以降はもう簡単にタップを捕捉できます。 Gesture Recognizer!無料! UIGestureRecognizer ジェスチャーを捕捉してくれるのはUIGestureRecognizerクラスです。派生クラスで以下のものが用意されています。 UITapGestureRecognizer タップ UIPinchGestureRecognizer ピンチインアウト主に拡大縮小 UIPanGestureRecognizer ドラッグ UISwipeGestureRecognizer ページめくりやスクロール等のスワイプ UIRotationGestureRecognizer 指2本で回転させる感じ UILongPressGestureRecognizer 長
iPhone でのモーダルビューの表示、非表示、値の受け渡し方法です。モーダルビューとは、下からニョキッと出てくるタイプの一時的なビューです。何か情報を入力させたりするのに使用します。 大事な点は、 モーダルビューの表示、非表示は両方共同じクラスでやること 値の受け渡しはデリゲートで行うこと ということです。 サンプルでたまに見かけるのは、表示を親ビューでやり、非表示はモーダルビューの中でやっている方法です。この方法でもかまいませんが、より汎用的にするためにはデリゲートを使用して、モーダルビューを表示したビューコントローラで非表示も行うべきです。また、モーダルビューから値を渡すのもデリゲートを使用して行うべきです。 モーダルビューの例としては、UIImagePickerViewController があげられます。この UIImagePickerViewController からの値の受け
2009年04月11日21:29 カテゴリプログラミングiPhone UIViewのフェードイン/フェードアウト ブログネタ:Objective-C に参加中! 良く使いそうなのでいつも通りカテゴリで追加。 UIView+Effect.h // // UIView+Effect.h // KeitaiEmuPro // // Created by あんのたん on 2009/04/11. // Copyright 2009 あんのたん. All rights reserved. // #import <Foundation/Foundation.h> @interface UIView (Effect) - (void)fadeInWithDuration:(NSTimeInterval)interval; - (void)fadeOutWithDuration:(NSTimeInterv
こんにちわ。最近引っ越した家の周りを探索するのにはまっている中村です。 今回は3D関係について書きたいと思います。 なお、サンプル画像と動画が記事の最後にあります!! 概要 iPhoneのOpenGL用にさまざまなライブラリおよびミドルウェアは出ていますけれど、今回は、iPhoneの3Dチップメーカーが出しているライブラリの紹介をしたいと思います。一応公式のチップメーカーがだしているし、便利でお手軽なライブラリなのにいまいち検索しても日本語のサイトが出てこないので、開発の方に広く知ってもらいたいと思い、書こうと思いました。 iPhoneやAndroidのOpenGL Viewの使い方は一部紹介しますが、検索すればいくらでも出てくるのでそこは調べてもらうものとします。また、スキンドメッシュの原理に関しては、ちょこっとだけ解説しますが、詳しくは長くなるので、グラフィックスの専門のサイトにまかせ
-現在のバージョンには2147483647問題がある *初期化 engine = [[MGTwitterEngine alloc] initWithDelegate:self]; [engine setUsesSecureConnection:YES]; [engine setUsername:@"user" password:@"pass"]; *タイムライン取得 [engine getFollowedTimelineSinceID:0 startingAtPage:0 count:10]; このメソッドは非同期で実行され、即座に戻ってくる。 情報取得が完了すると、初期化で指定されたデリゲートに、メッセージ - (void)statusesReceived:(NSArray *)statuses forRequest:(NSString *)connectionIdentifier が送
nib2objcはMac OSXで作成したインタフェースファイルをObjective-Cに変換するソフトウェア。 nib2objcはMac OSX用のフリーウェア(ソースコードは公開されている。ライセンスはTHE BEER-WARE LICENSE)。iPhoneは年々進化しているが、それでもデスクトップなどに比べると速度は遅い。多少もたつく時もあるため、ストレスに感じることもあるかも知れない。より高いパフォーマンスを求めだすと、徐々に標準のやり方から脱線していく。 Interface Builderを使えばiPhone向けの画面をグラフィカルに設計ができる。だがよりパフォーマンスを求めたり、プログラムから動的にインタフェースを変更したいといったニーズがある時にはnib2objcを使って変換してみよう。 元ファイル nib2objcはXIBファイルを引数にし、Objective-Cのコード
もひとつObjectivc-Cネタ。 Twitter APIのようにBASIC認証がかかっているURLにアクセスする際、NSMutableURLRequestに - setValue:forHTTPHeaderField: でBase64エンコードした文字列をヘッダに突っ込む、という方法しか知らなくてそうしてたのだけど、どうやらそれ以外にも方法があったらしい。 http://username:password@twitter.com/statuses/friends_timeline.jsonという方法もあるみたいだけど。。 NSURLConnectionの -connection:didReceiveAuthenticationChallenge: を実装する NSURLConnectionインスタンスにはアクセスするURLからリクエストを作って普通にリクエストする。 NSURL *ur
アプリ開発をしているときに、EXC_BAD_ACCESSが発生してしまうと原因不明でアプリが落ちてしまう。デバッガでどこで落ちるのか探して、原因となる行を特定して修正ということになるけども、もっと楽な方法が欲しい。 そこで出てくるのがNSZombieEnabledを有効にするというはなし。 設定方法は簡単 プロジェクトメニュー => アクティブな実行ファイル"○○"を編集 を開き「引数」タブをクリック。上下二つの設定項目のうち「環境に設定される変数」に設定 これで、EXC_BAD_ACCESS発生してもデバッガコンソールにより詳細な情報が出てくれる。便利めちゃ便利。 iPadアプリを作る場合には、かならず回転に対応した状態で作らなければならぬらしい。 結論を先に言うと、Window-basedを使わずView-basedを使えと。 回転対応するにはUIViewController追加する。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く