[objective-c]modalPresentationStyle & modalTransitionStyle

iPadアプリでは、UIViewControllerをpresentModalするときに
modalPresentationStyleとmodalTransitionStyleを設定することで
modalViewの出し方を変えることが出来ます。

modalPresentationStyle

UIModalPresentationFullScreen

UIModalPresentationPageSheet

width:自由
height:自由
何も指定しないとFullScreen
指定のしかた

myUIViewController.modalPresentationStyle=UIModalPresentationPageSheet;
[self presentModalViewController:myUIViewController animated:YES];
myUIViewController.view.superview.frame=CGRectMake(0, 0, 768,300);
myUIViewController.view.superview.center=CGPointMake(768*0.5, 300);

UIModalPresentationFormSheet

何も指定しないと
width:540px
height:620px

UIModalPresentationCurrentContext

親ViewControllerと同じWidth,Height

modalTransitionStyle

UIModalTransitionStyleCoverVertical
下から出てくる

UIModalTransitionStyleFlipHorizontal
画面が回転する

UIModalTransitionStyleCrossDissolve
次の画面がフェードインする

UIModalTransitionStylePartialCurl
ページカール

[JavaScript]iPadでリンクを長押ししたときに出てくるフキダシを出さない

iPadでリンクを長押ししたときにフキダシが出てきます。

これを出さないようにする方法を色々調べました。
下記にサンプルを用意したのでそれをiPadで見るのが一番早いでしょう。
サンプル

iPhone,iPadのタッチイベントについてはこちら[javascript]iPhoneタッチイベント

基本的に対象に下記のような処理をすればよい。
addEventListenerでtouchstartに登録する方法ではダメでした。

var n=document.getElementById('targetID');
n.ontouchstart=function(){
	return false;
};

下記のようにするとページ全体が対象になる。

var n=document;
n.ontouchstart=function(){
	return false;
};

[iPhone Game]社畜!ナカムラくんFREE

iPhone Game「社畜!ナカムラくんFREE」をリリースしました。

社畜!ナカムラくん」の無料版です。
有料版の40ステージが遊べます。有料版では全80ステージ遊べます。

社畜のナカムラくんを会社へ導くパズルアクションゲームです。
ナカムラくんは毎日休まず会社へ行きます。
そんなナカムラくんを橋やジャンプ台、はしご、大砲などを駆使して会社へ導きましょう。
全80ステージあり、頭を使うので社畜の方もそうでない方も楽しめますよ!
さぁ!出社せよ!

社畜!ナカムラくん
社畜!ナカムラくんFREE

プレイ動画@YouTube

全ステージロック解除
ステージ1-2の橋を使って「↑↑↓↓←→←→Clock Face」と操作すると
全ステージのロックが解除されます。
下記動画を参考にやってみてください。
プレイ動画@YouTube

[facebook]シェアボタンの対象URLを動的に変える

facebookのシェアボタンの対象URLを
jquery.socialbuttonを使って変えようとしたらうまく行かなかったので、対応方法をメモ。
socialbuttonメソッドを呼び出す前に下記を実行すればよい。

window.FB=undefined;

うまく行かないサンプル

うまく行くサンプル

参考サイト
jQuery.socialbutton プラグインを作ったよ | アイトランス株式会社
http://itra.jp/jquery_socialbutton_plugin/

[Xcode]NSLocalizedStringでローカライズ

iPhoneアプリをローカライズ(多言語対応)するときNSLocalizedStringを使うと便利です。
1.まずResourcesなど右クリックして「New File」をクリック
2.ResourceのStrings Fileを選択
3.ファイル名:Localizable.stringsで保存
4.Localizable.stringsを選択してXcodeの右カラムのLocalizationの「+」から言語を選択します。
5.各言語のLocalizable.stringsには下記のようにテキストを設定します。

Localizable.strings(English)

hogeText="hoge";

Localizable.strings(Japanese)

hogeText="ほげ";

6.使うときはこう

NSString*s=NSLocalizedString(@"hogeText", nil);

[objective-c]UIActionSheet

アクションシートの出し方です。
アクションシートというのはこういうやつです。

まずデリゲートの設定をします。

@interface HogeViewController : UIViewController <UIActionSheetDelegate> {

そしてHogeViewController.mに下記コードを記述してsetActionSheetで実行します。

//アクションシートのボタンを押した直後
-(void)actionSheet:(UIActionSheet*)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    NSLog(@"clickedButtonAtIndex %d",buttonIndex);
    switch (buttonIndex) {
        case 0://選択1
            
            break;
        case 1://選択2
            
            break;
        case 2://選択3
            
            break;
        case 3://キャンセル
            
            break;
        default:
            break;
    }
}
//ボタンを押してアクションシートが下へ消えたとき
-(void)actionSheet:(UIActionSheet*)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex{
    NSLog(@"didDismissWithButtonIndex %d",buttonIndex);
}
-(void)setActionSheet{
    UIActionSheet *as = [[UIActionSheet alloc] init];
    as.delegate=self;
    as.title=@"アクションシート";
    [as addButtonWithTitle:@"選択1"];
    [as addButtonWithTitle:@"選択2"];
    [as addButtonWithTitle:@"選択3"];
    as.cancelButtonIndex=3;
    [as showInView:self.view.window];
    [as release];
}

[objective-c]UIViewで表示されている状態をUIImageにする

UIViewに表示した状態をUIImageにすることが出来ます。
UIImageにすればカメラロールに保存したり、SNSにアップロード出来ます。

- (UIImage *)screenImage:(UIView *)view{
    UIImage *screenImage;
    UIGraphicsBeginImageContext(view.frame.size);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    screenImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return screenImage;
}

[objective-c]画像(UIImage)をpngでカメラロールに保存する

UIImageをpngで保存するときは、普通に保存する処理に2行ほどコードを追加します。
下記コードではsavePhotoPngメソッドにUIImageを渡せばpngで保存されます。

-(void)savePhotoPng:(UIImage*)orizinalSizeImage{
    NSData *imageData = UIImagePNGRepresentation(orizinalSizeImage);
    UIImage *pngimage = [UIImage imageWithData:imageData];
    
    UIImageWriteToSavedPhotosAlbum(pngimage, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}

//写真保存後にコールバックされる
-(void)image:(UIImage*)image didFinishSavingWithError:(NSError*)error contextInfo:(void*)contextInfo{
    if(error){//エラーのとき
        
    }else{//保存できたとき
        
    }