2012-05-01から1ヶ月間の記事一覧
Method Swizzlingとは「クラスのメソッドテーブルを書き換えることでセレクタ名のリネーミングを行なう技法」。 要はフレームワークのメソッドを自前のメソッドでオーバーライドする方法。 objective-cではカテゴリを使えばオーバーライドできそうだが、正し…
AppStoreの検索窓のように、テキストボックスにフォーカスが当たったらキーボードとポップオーバーを表示させて、 テキストボックス・ポップオーバー・キーボード以外の部分をタップしたらポップオーバーを消す方法。 ・ViewControllerに以下のアクションを…
node-inspectorを実行すると以下のエラーが出た。 Error raised: listen EADDRINUSE これはすでに他のプロセスで使用されているポートを使おうとしたら出るエラーらしい。 参考:http://stackoverflow.com/questions/9446708/getting-the-basic-socket-io-sa…
IBでViewのSizeを可変にしていると、addSubViewで他のViewの子にしただけでSizeが変化するので注意。 どんな計算式でSizeを計算しているかは不明。。
デバイスの向きは普通以下のコードで取得できる。 UIInterfaceOrientation toInterfaceOrientation = [[UIDevice currentDevice] orientation]; が、AppDelegateのdidFinishLaunchingWithOptionsメソッドが終わる前に上記コードを実行するとデバイスの向きを…
デバイスの向きが変わったタイミングで処理を行う場合、RootViewController以外ではUIDeviceOrientationDidChangeNotificationイベントで処理する。 NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; [center addObserver:self select…
プログラムから先頭のセルを選択したい、という場合、以下のようにする。 [self.currentTableViewController.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionTop]; [NSI…
AppCodeいいですね。Xcodeよりよくできてると思うので最近AppCodeにIDEを乗り換えました。 AppCodeのコード補完はデフォルトでは大文字小文字を区別するのでそれを区別しないよう設定。 設定Windowの検索窓にcompletionと打てば設定画面にたどり着ける。設定…
デバッグしてると以下のように数値をログに出してみたいということがよくある。 NSLog(@"%d", self.tableView.contentOffset.y); さっきログに出ている数値がずっと0だけどそんなはずない。。。と悩んでいたら数値の型がfloatだったからだった。。 以下が正…
以下のようにself.tableView.editingの変更とreloadDataを同じイベント内で行うとアニメーションが行われなくなってしまう。 - (IBAction)editButtonTouch:(UIBarButtonItem *)sender { [self.tableView setEditing:!self.tableView.editing animated:YES]; …
UITableViewCellを以下のように設定すればいいだけ。 簡単ですな。 cell.selectionStyle = UITableViewCellSelectionStyleNone;
ソースコードを更新したら自動でリロードしてほしいが、それを実現するライブラリがnode-supervisor。 ファイルの更新を検知して勝手に読み込んでくれます。便利! 後はブラウザの更新さえ自動化出来れば画面で修正結果を確認するところまで全部自動化出来る…
EXC_BAD_ACCESSが出たけど、どの変数もZombieになってないしコンソールにもエラーの発生箇所が出てないしなんだこりゃと思ったら参照を渡さないといけない引数にprimitive型を渡していた。 - (IBAction)editButtonTouch:(UIBarButtonItem *)sender { [[NSNot…
UITableViewをスクロールさせるとscrollViewDidScrollメソッドが呼ばれるらしいのでこれを使う。 まずスクロールしたらイベントが発生するようにする。 -(void)scrollViewDidScroll:(UIScrollView *)scrollView { [[NSNotificationCenter defaultCenter] pos…
UITableViewの並べ替え用アイコン(ソフトバンクのロゴみたいやなつ)の位置を変えようとしたらえらい苦労した。 UITableViewのセルの並べ替え機能はUITableViewCellReorderControlに実装されているらしい。 が、UITableViewCell内にあるUITableViewCellReor…
AppleのガイドラインにはSplitViewをRootViewにしないといけないと書いてある。 なのでUISplitViewControllerは他のViewのSubViewにするとうまく動かない。 これを解決する方法の一つはUIWindowを2つ作って、そのうち一つのRootViewをUISplitViewController…
UITableViewのDeleteボタンを以下のようにする方法 ・Tableをスワイプした時にはDeleteボタンを出さない ・編集モード時(editing=YESのとき)はDeleteボタンを出す - (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView editingStyleForRow…
View1にジェスチャーを設定しているけど、View1の子ビューのView2の中ではジェスチャーを無効にしたいということがある。そういう場合は-gestureRecognizer:shouldReceiveTouch:を使うとよい。 - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRec…
UITableViewはセルを再利用しているので、「何もデータを表示しない」セルであってもセル内のラベルなどに初期値を代入しないと前回代入した値が残ってしまう。 下記のようにif (cell == nil)のelse句に初期化コードを書くべき。 - (UITableViewCell *)table…
dropboxを使ってローカルで書いたコードをサーバにアップロードしているんだけど、コンソールでログインする度にdropboxを実行したくないのでサーバをログアウトしてもdropboxを実行し続ける方法を捜してみた。 http://d.hatena.ne.jp/ymotongpoo/20110330/1…
重い検索処理をバックグラウンドスレッドで実行して、その結果をUITableViewに反映させようとしてはまった。 最初は以下のようにしていたが、これは間違い。 - (void)searchStocks:(id)param{ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; …
CFStringTransformでできるらしい。 詳細は下記サイト参照。 http://d.hatena.ne.jp/alza/20120419/1334830039
下記のようにやるらしい。後方参照とかどうやるんだろ。 NSString *string = @"1日3食のうち4食はうどんを食べたいと思っている。"; NSRange match = [string rangeOfString:@"[0-9]+食" options:NSRegularExpressionSearch]; if (match.location != NSNotFo…
http://qiita.com/items/2557 上記サイトによるとlikeのときは括ってはいけないと書いてあるが、やってみたらくくらないとエラーになった。 NSPredicate *predLike = [NSPredicate predicateWithFormat:@"name like[c] '%@'", name]; NSPredicate *predConta…
ObjectiveーCではNSStringなどのビルトインオブジェクトにメソッドなどを追加できるということを今知った! これはWktkせざるを得ない。 いろいろメソッドを追加して便利にできそうだけど、注意しないと予期せぬ不具合が起こりそうなので慎重に。。 とりあえ…
どのボタンが選択されているかを表示する場合、momentaryプロパティを設定すればいいが、このプロパティの意味を逆にとらえていた。。 momentaryをNOにすると選択状態が表示される。 momentaryの意味は「一時的な」とかだからそこから考えたら確かにそうだよ…
つまみが二つあるスライダーを自作していて、つまみがやけにつかみづらいなーと思ったら、つまみが親ビューからほとんどはみ出しているためタッチイベントがほぼ拾えないことが原因だった。。 下記サイトを参考にカスタムUIWindowを作ってsendEventメソッド…
下記サイトを参考に実装しました。簡単♪ http://d.hatena.ne.jp/yuum3/20100202/1265079161
willRotateToInterfaceOrientationとかがなぜか呼ばれないと思っていたら下記サイトによるとrootViewControllerのwillRotateToInterfaceOrientationしか呼ばれないらしい!なんでだよ・・・ http://www.iphonedevsdk.com/forum/iphone-sdk-development/3098-…
iPhoneの回転イベント発生時に何か処理をする方法を調べるとよくshouldAutorotateToInterfaceOrientationメソッドに処理を実装している例を見かけるがこれは間違いじゃないか? shouldAutorotateToInterfaceOrientationは画面の回転を許可するかどうかを示す…