コードはこちらのサイトのものを拝借している。
2011/11/30
iOSのTwitterフレームワークでツイートするには?
iOS5になってからTwitterがネイティブでサポートされるようになったことはご存知の通りである。以下はアプリ内からツイートするためのサンプルコードである。
画像をフェードインさせる
画像をすっとフェードインさせたいときはView Animationを使うのが手軽でよい。
imageView.alpha = 0;
[UIView beginAnimations:@"fadeIn" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.3];
imageView.alpha = 1;
[UIView commitAnimations];
例えば非同期で画像をロードして表示する場合、突然絵が現れるのは無骨だが、フェードインさせると眼にやさしいというか見栄えがよかったりする。
UIActivityIndicatorViewのくるくるや画像の非同期ロードと組み合わせるのがグッド◎
imageView.alpha = 0;
[UIView beginAnimations:@"fadeIn" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:0.3];
imageView.alpha = 1;
[UIView commitAnimations];
例えば非同期で画像をロードして表示する場合、突然絵が現れるのは無骨だが、フェードインさせると眼にやさしいというか見栄えがよかったりする。
UIActivityIndicatorViewのくるくるや画像の非同期ロードと組み合わせるのがグッド◎
2011/11/29
NSNotification - 通知センターの使い方
iOSにおいて通知センターは、イベントの登録とイベントハンドラの指定を担うものである。もちろんnotificationの種類にはもともと用意されているものも多くあり、これはJavascriptにおけるイベントのonMouseOverなどに似ている。
NSNotificationは異なるオブジェクト間でコミュニケーションをとりたいときに役立つ。
以下のコードはNSNotificationCenterの使用例である。
この例で言うと、receiveTestNotificationメソッドがJavascriptのイベント発生後に実行されるコールバック関数に似ている。
サンプルコードはこちらを参考に掲載。
NSNotificationは異なるオブジェクト間でコミュニケーションをとりたいときに役立つ。
以下のコードはNSNotificationCenterの使用例である。
この例で言うと、receiveTestNotificationメソッドがJavascriptのイベント発生後に実行されるコールバック関数に似ている。
サンプルコードはこちらを参考に掲載。
iPod Nanoを腕時計に!
iPod Nanoを腕時計にしてくれるtiktok, lunatikがかっこよさそう。
シルバー、ブラックをはじめ、赤・青・黄などのカラーラインアップがある模様。
Kickstarterという資金調達支援サービスを通じて$943,000以上も集めて話題になったとか。この手があったか!と思い知らされる有名プロジェクトの産物だ。
アップルの洗練されたデザインをうまく活かした素敵なプロダクトである。
強いて言えばiPod Nanoにbluetoothステレオが内蔵で欲しいところ。とはいえ、小型bluetooth対応のトランスミッタを装着すればワイヤレスで音楽再生が可能である。
http://lunatik.com/
シルバー、ブラックをはじめ、赤・青・黄などのカラーラインアップがある模様。
Kickstarterという資金調達支援サービスを通じて$943,000以上も集めて話題になったとか。この手があったか!と思い知らされる有名プロジェクトの産物だ。
アップルの洗練されたデザインをうまく活かした素敵なプロダクトである。
強いて言えばiPod Nanoにbluetoothステレオが内蔵で欲しいところ。とはいえ、小型bluetooth対応のトランスミッタを装着すればワイヤレスで音楽再生が可能である。
http://lunatik.com/
iOS5で画像を非同期ロードして表示するには?
iOS5になってからは自動メモリ管理(automatic reference counting)やNSURLConnectionのデリゲート仕様の変更などにより、従来のコードでは画像をうまく非同期ロードできない場合がある。
そんなときは次のNSURLConnectionのクラスメソッドを実装すればよい。
+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler
iOS5でもかつてのNSURLConnectionデリゲートメソッド(現在はNSURLConnectionData protocolのものか)によって非同期通信が実現できないわけではないらしいが、マルチスレッドでアプリを動かす場合には注意が必要とのこと。いずれにしても今後はsendAsynchronousRequestを利用した方がベターということであろうか。
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
iOS4.3以前であれば、次のようなライブラリがあり、かつてはよく使用されていたと思われる。
AsyncImageView
UIImageViewを継承したクラスライブラリ。
非同期通信で画像をロードし、UIが固まるのを防いでくれる。
ASIHTTPRequest
CFNetwork APIのラッパーで非同期通信をラクにするライブラリ。
そんなときは次のNSURLConnectionのクラスメソッドを実装すればよい。
+ (void)sendAsynchronousRequest:(NSURLRequest *)request queue:(NSOperationQueue *)queue completionHandler:(void (^)(NSURLResponse*, NSData*, NSError*))handler
iOS5でもかつてのNSURLConnectionデリゲートメソッド(現在はNSURLConnectionData protocolのものか)によって非同期通信が実現できないわけではないらしいが、マルチスレッドでアプリを動かす場合には注意が必要とのこと。いずれにしても今後はsendAsynchronousRequestを利用した方がベターということであろうか。
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
iOS4.3以前であれば、次のようなライブラリがあり、かつてはよく使用されていたと思われる。
AsyncImageView
UIImageViewを継承したクラスライブラリ。
非同期通信で画像をロードし、UIが固まるのを防いでくれる。
ASIHTTPRequest
CFNetwork APIのラッパーで非同期通信をラクにするライブラリ。
画像とかロードしてるときのくるくる
UIActivityIndicatorViewを使うのが一般的。
UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc]initWithFrame:CGRectMake(135,30,50,50)];
[spinner startAnimating];
[spinner startAnimating];
[self.view addSubview:spinner];
//いろいろたのしいことしませふ
[spinner stopAnimating];
デフォルトの設定ではstopAnimatingをした段階でくるくるは非表示になる。
これはUIActivityIndicatorViewのhidesWhenStoppedというプロパティのデフォルト値がYESになっているためである。
//いろいろたのしいことしませふ
[spinner stopAnimating];
デフォルトの設定ではstopAnimatingをした段階でくるくるは非表示になる。
これはUIActivityIndicatorViewのhidesWhenStoppedというプロパティのデフォルト値がYESになっているためである。
TableViewのヘッダーのスタイルを変更するには?
グルーピングスタイルのTableViewの文字色やフォントサイズといったスタイルを変更するにはどうしたらよいか。
UITableViewDataSource Protocolにある
UITableViewDelegate Protocolにある次の二つのメソッドを実装すればデザインもまとめて変更できる。
heightForHeaderInSectionも一緒に実装しないと表示がへんになる。
http://stackoverflow.com/questions/6922808/how-can-we-change-the-font-of-tableview-header
UITableViewDataSource Protocolにある
を実装すれば、ヘッダーのタイトルを出力できるが、スタイルまでは変えることができない。
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
heightForHeaderInSectionも一緒に実装しないと表示がへんになる。
http://stackoverflow.com/questions/6922808/how-can-we-change-the-font-of-tableview-header
登録:
投稿 (Atom)