初アプリをAppleStoreに公開申請しました。来週の早いうちには結果がでると思います。一発で通るといいな。
UIViewに影をつける
11月 17th, 2011 by adminUIViewに影をつけると、立体感のある素敵なユーザインターフェースを実現できます。
1. QuartzCore/QuartzCore.hをインポート
2. 影の濃さと位置を指定します。
view.layer.shadowOffset = CGSizeMake(10.0, 10.0); // 影までの距離を指定
ヒント:
setTransformで回転させたりした場合、影も回転してしまいます。スクリーンショットに掲載しているアプリの時針・分針・秒針は、少しずらした位置に別のUIViewを影っぽい色で表示しています。
UIViewの背景にパターン画像を表示
11月 17th, 2011 by adminUIColorで、パターンを表す”色”を作成できます。作成した”色”をbackgroundColorに設定すれば、UIViewの背景にパターン画像が表示されます。
iOS5 TwitterAPIで画像を添付して発言する
11月 17th, 2011 by adminiOS5で実装されたTwitterAPIを使って発言する際に画像を添付する方法です。この方法を使って画像を添付した場合、ユーザは添付ファイルを外すことができないのでご注意下さい。また、addImageというメソッド名になっていますが、最初に設定した画像のみが送信され、2番目以降にaddImageした画像は無視されます。
1. Twitter.frameworkをライブラリに追加し、<Twitter/Twitter.h>をインポートします。
2. TWTweetComposeViewControllerを初期化し、イメージを追加し、モーダルウィンドウとして表示します。
UIImage * image = [UIImage imageNamed:@"image.png"];
[twitterCtl addImage:image];
[self.window.rootViewController presentModalViewController:twitterCtl animated:YES];
UIViewの画像をUIImageに変換
11月 17th, 2011 by adminUIViewで表示しているイメージをUIImageを作る方法です。
- (UIImage*)CreateUIImageFromUIView:(UIView*)view
{
UIGraphicsBeginImageContext(view.bounds.size);
CGContextScaleCTM(UIGraphicsGetCurrentContext(), 1.0f, 1.0f );
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage* viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
UIViewの角を丸める方法
11月 16th, 2011 by adminUIViewの角を丸める方法です。もちろん、UIViewのサブクラスすべてに対して適用できます。
- QuartzCore/QuartzCore.hをインポート
#import <QuartzCore/QuartzCore.h>
- 角を丸めたいビューのlayer.cornerRadius(角の半径)を設定
backgroundView.layer.cornerRadius = 8.0f;
イメージ
iOS5のTwitter機能
11月 16th, 2011 by adminiOS5のTwitter機能をアプリに組み込む手順の解説です。iOS5ではTwitterがOSの標準機能として搭載されました。この機能を使うと、アプリ側ではアカウント認証などの作業が不要になり、手軽にTwitter投稿機能を組み込めるようになりました。
- まず、Empty Applicationタイプのプロジェクトを作成します
- 次に、プロジェクトにTwitter.frameworkライブラリを追加し、ソースコードにTwitter/twitter.hをimportします
#import <Twitter/Twitter.h>
- 最後に、ApplicationDelegate.mを以下のように書き換えます
- 起動メソッドに3行付け加えます。
- tweetメソッドを追加します。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
//以下3行を追加
UIViewController *rootViewController = [[UINavigationController alloc] init];
self.window.rootViewController = rootViewController;
[rootViewController.view addGestureRecognizer:[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tweet)]];
[self.window makeKeyAndVisible];
return YES;
}
//起動後の画面をタップするとこのメソッドが実行されます。
-(void)tweet{
TWTweetComposeViewController * twitterCtl = [[TWTweetComposeViewController alloc] init];
[self.window.rootViewController presentModalViewController:twitterCtl animated:YES];
}スクリーンショット
起動したあとに画面をタップするとTweet画面が表示されます。発言したい内容を記入してSendボタンを押下すると、iOSに設定されているTwitterアカウントを使って実際にTwitterに投稿されます。

ダウンロード
MyTwitterClient
NSTimer - スケジュール実行
11月 14th, 2011 by admin定期的に実行したり、時間を置いて実行する処理には、NSTimerを使います。
scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:
インスタンスを作るだけで実行が始まります。
引数
- scheduledTimerWithTimeInterval
実行間隔(秒) - target
メッセージの送信先オブジェクト - selector
メッセージの送信先セレクタ - userInfo
NSTimerに持たせるユーザデータ - repeats
繰り返しの有無 YES/NO
ソースコード例
selfのupdateClickメソッドを0.02秒間隔で実行します。
scheduledTimerWithTimeInterval:0.02f
target:self
selector:@selector(updateClock)
userInfo:nil
repeats:YES];
Xcodeのコード補完が効かなくなった場合の対処法
11月 14th, 2011 by adminXcodeでソースコードを書いていて、特定のソースファイルでコード補完が効かなくなりました。以下の方法でコード補完を復活できました。
xcode3から4にしたら[hogeView addSubview] くらいの入力補完も出てこなくなってしまい、なんで!?って思ってました。
どうやら、
/Users/(Your UserName)/Library/Developer/Xcode/DerivedData
を消せばいけるようで、まずオーガナイザーを起動して、プロジェクトを選択。上記のDerivedData消し、Xcodeを立ち上げ直し→ビルドし直し、をしたらおっけーになりました。
スクリーンショット
Shift-⌘-2 もしくは メニューのWindow/Orgnizer からOrganizerを開き、プロジェクトのDerived Dataを削除(Delete)し、Xcodeを再起動すると復旧しました。


