ログイン




初アプリ申請しました。

11月 17th, 2011 by

初アプリをAppleStoreに公開申請しました。来週の早いうちには結果がでると思います。一発で通るといいな。

UIViewに影をつける

11月 17th, 2011 by

UIViewに影をつけると、立体感のある素敵なユーザインターフェースを実現できます。

1. QuartzCore/QuartzCore.hをインポート

#import <QuartzCore/QuartzCore.h>

2. 影の濃さと位置を指定します。

view.layer.shadowOpacity = 0.2; // 濃さを指定
view.layer.shadowOffset = CGSizeMake(10.0, 10.0); // 影までの距離を指定

ヒント:
setTransformで回転させたりした場合、影も回転してしまいます。スクリーンショットに掲載しているアプリの時針・分針・秒針は、少しずらした位置に別のUIViewを影っぽい色で表示しています。

UIViewの背景にパターン画像を表示

11月 17th, 2011 by

UIColorで、パターンを表す”色”を作成できます。作成した”色”をbackgroundColorに設定すれば、UIViewの背景にパターン画像が表示されます。

view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"pattern.png"]];

iOS5 TwitterAPIで画像を添付して発言する

11月 17th, 2011 by

iOS5で実装されたTwitterAPIを使って発言する際に画像を添付する方法です。この方法を使って画像を添付した場合、ユーザは添付ファイルを外すことができないのでご注意下さい。また、addImageというメソッド名になっていますが、最初に設定した画像のみが送信され、2番目以降にaddImageした画像は無視されます。

1. Twitter.frameworkをライブラリに追加し、<Twitter/Twitter.h>をインポートします。

#import <Twitter/Twitter.h>

2. TWTweetComposeViewControllerを初期化し、イメージを追加し、モーダルウィンドウとして表示します。

TWTweetComposeViewController * twitterCtl = [[TWTweetComposeViewController alloc] init];
UIImage * image = [UIImage imageNamed:@"image.png"];
[twitterCtl addImage:image];
[self.window.rootViewController presentModalViewController:twitterCtl animated:YES];

スクリーンショット

UIViewの画像をUIImageに変換

11月 17th, 2011 by

UIViewで表示しているイメージをUIImageを作る方法です。を忘れずにインポートして下さい。

#import <QuartzCore/QuartzCore.h>

- (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からUIIMAGE データを作成する方法

UIViewの角を丸める方法

11月 16th, 2011 by

UIViewの角を丸める方法です。もちろん、UIViewのサブクラスすべてに対して適用できます。

  1. QuartzCore/QuartzCore.hをインポート
    #import <QuartzCore/QuartzCore.h>
  2. 角を丸めたいビューのlayer.cornerRadius(角の半径)を設定
    backgroundView.layer.cornerRadius = 8.0f;

イメージ

白の長方形の角が丸くなっています。

iOS5のTwitter機能

11月 16th, 2011 by

iOS5のTwitter機能をアプリに組み込む手順の解説です。iOS5ではTwitterがOSの標準機能として搭載されました。この機能を使うと、アプリ側ではアカウント認証などの作業が不要になり、手軽にTwitter投稿機能を組み込めるようになりました。

  1. まず、Empty Applicationタイプのプロジェクトを作成します

  2. 次に、プロジェクトにTwitter.frameworkライブラリを追加し、ソースコードにTwitter/twitter.hをimportします
    #import <Twitter/Twitter.h>
  3. 最後に、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

UIButtonのラベルを変更できない

11月 15th, 2011 by

以下のソースコードでは、UIButtonのタイトルは正しく設定できません。

UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(10.0f, 120.0f, 300.0f, 50.0f);
button.titleLabel.text = @"ボタン名";

UIButtonのタイトルはsetTitle:forState:を使って書き換えます。

button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(10.0f, 120.0f, 300.0f, 50.0f);
[button setTitle:@"ボタン名" forState:UIControlStateNormal];

NSTimer - スケジュール実行

11月 14th, 2011 by

定期的に実行したり、時間を置いて実行する処理には、NSTimerを使います。

scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:

インスタンスを作るだけで実行が始まります。
引数

  • scheduledTimerWithTimeInterval
    実行間隔(秒)

  • target
    メッセージの送信先オブジェクト
  • selector
    メッセージの送信先セレクタ
  • userInfo
    NSTimerに持たせるユーザデータ
  • repeats
    繰り返しの有無 YES/NO

ソースコード例

selfのupdateClickメソッドを0.02秒間隔で実行します。

[NSTimer
     scheduledTimerWithTimeInterval:0.02f
     target:self
     selector:@selector(updateClock)
     userInfo:nil
     repeats:YES];

参考
NSTimer Class Reference

Xcodeのコード補完が効かなくなった場合の対処法

11月 14th, 2011 by

Xcodeでソースコードを書いていて、特定のソースファイルでコード補完が効かなくなりました。以下の方法でコード補完を復活できました。

xcode3から4にしたら[hogeView addSubview] くらいの入力補完も出てこなくなってしまい、なんで!?って思ってました。

どうやら、

/Users/(Your UserName)/Library/Developer/Xcode/DerivedData

を消せばいけるようで、まずオーガナイザーを起動して、プロジェクトを選択。上記のDerivedData消し、Xcodeを立ち上げ直し→ビルドし直し、をしたらおっけーになりました。

xcode4にしたら入力補完が効かなくなった件

スクリーンショット

Shift-⌘-2 もしくは メニューのWindow/Orgnizer からOrganizerを開き、プロジェクトのDerived Dataを削除(Delete)し、Xcodeを再起動すると復旧しました。