2011年10月05日

iPhone5はっぴょーだが。。。

今日の朝2時位にAppleの新製品の発表があった。。。らしい。
(自分は爆睡中でストリーミングを見なかった。^^;)

iPhone4S、iCloud、iOS5などと言った製品を発表してたようだが、「iPhone5」という製品の発表は無かったらしい。

しかし。。。

ここを読むと、米国スプリントが1兆円越えの凄まじい額の投資を行っている事から、iPhone4S = iPhone5とは到底思えない
しかもスプリントの契約総数5000万に対し、3000万台iPhone5を購入する契約!
…独占販売とは言えやり過ぎだろう。
参照サイト

で、上記リンクでの話。ここは信憑性が疑われるが、
日本ではSBからiPhone4Sのみ、あうあうからはiPhone5のみが発売らしい。
これも本当かどうか大分疑わしいな。
何にせよiPhone5と言う言葉が出てくるのはどうも来年になりそうだ。
ラベル:iPhone apple
posted by 1.618 at 10:13| Comment(0) | iPhone | このブログの読者になる | 更新情報をチェックする

2011年05月09日

removeFromSuperviewでdelegate(ハンドラー)を追加する方法

以前(ず〜っと前)にiPhoneのプログラミングでdelegate = (javaで言う)ハンドラーでほぼ間違いないという事を書いたと思う。

でその活用法を今日試行錯誤してあみ出した!(^^;

例えば、
mainViewControllerからsubViewControllerを呼び出した場合。
subViewControllerで、
[self.view removeFromSuperview]
をおこなった時にmainViewControllerでハンドル出来るメソッドは用意されていない。

loadView, viewDidAppear, viewWillAppear, 等、既存のdelegateメソッドはコールされなかった。

では、subViewControllerでremoveFromSuperviewを行った直後、mainViewControllerで何かを行いたい場合はどうするか。。。?

答えは、protocolを使用しdelegate(ハンドラー)をmainViewControllerに追加する


まずはprotocolを作成。
protocolは.hファイルで作成する。
今回はMainSubViewProtocol.hとした。


#import

@protocol MainSubViewProtocol

-(void) hideSubView:(UIViewController *)viewController;

@end


この使用をmainViewController.hで宣言。

#import "MainSubViewProtocol.h"
#import "SubViewController.h"

@interface MainViewController : UIViewController <MainSubViewProtocol>{
:
:
}
:
-(IBAction) switchingViews;
:
@end


MainViewController.mでprotocolメソッドであるhideAnswerViewを実装し、subViewControllerをinitするときに、subViewController.delegate = selfとしてハンドラーを設定。

:
-(void) hideAnswerView:(UIViewController *)viewController {
NSLog(@"MainSubViewController hideAnswerView");
}

:
:
-(IBAction)switchingViews {
:
subViewController = [[SubViewController alloc] initWithNibName:@"SubViewController" bundle:[NSBundle mainBundle]];
subViewController.delegate = self;
:
[self.view addSubview:subViewController.view];
}



SubViewController.hでdelegateインスタンスを用意してやる。

#import "MainSubViewProtocol.h"

@interface SubViewController : UIViewController {
id delegate;
:
}
:
@property (assign) id delegate;
:
-(IBAction) switchingViews;
:
@end


SubViewController.mで呼び出したい場合にdelegateメソッドをコールする。


@implementation SubViewController

@synthesize delegate;
:
:
-(IBAction) switchingViews {
[self.view removeFromSuperview];
[delegate hideAnswerView:self];
}
:


これで、
subViewControllerでremoveFromSuperViewをやった直後にmainViewControllerで宣言したhideAnswerViewメソッドがコールされる。

以上。
posted by 1.618 at 15:56| Comment(0) | iPhone | このブログの読者になる | 更新情報をチェックする

2011年04月22日

iPhoneでPDFを表示する場合でPDFをUIImageに変換する。

iPhoneで今PDFリーダを作っている。
で、その際プレビュー表示をさせたいのだが、AFOpenFlowというライブラリが第三者から提供されているのでこれを使わしてもらう。

で、AFOpenFlowはImageをプレビューするものなので、読み込んだPDFを今度はUIImageに変換してやる必要がある。

のやり方が、


PDFファイルをUIImageに変換する

1.カレントグラフィックコンテキストで作成

-(UIImage*)getImage:(CGPDFPageRef)pPageRef{
UIImage *image = nil;

//グラフィックの作成開始:メインスレッドのみ
UIGraphicsBeginImageContext(rect);

//現在のグラフィックからコンテキストの生成
CGContextRef context = UIGraphicsGetCurrentContext();

//PDFページをコンテキストに描画
CGContextDrawPDFPage(context, pageRef);

//コンテキストをUIImageに変換
image = UIGraphicsGetImageFromCurrentImageContext();

//グラフィックの作成終了
UIGraphicsEndImageContext();

return image;
}

※上記はメインメソッドのみ使用可能
※上記はImageが反転して描画されるため、補正が必要


2.ビットマップコンテキストで作成
-(UIImage*)getImage:(CGPDFPageRef)pPageRef{
UIImage *image = nil;

//ビットマップコンテキストの生成
CGContextRef context = CGBitmapContextCreate();

//PDFページをコンテキストに描画
CGContextDrawPDFPage(context, pageRef);

//コンテキストをUIImageに変換
CGImageRef imageRef = CGBitmapContextCreateImage(context);
image = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);

//コンテキストの解放
CGContextRelease();

return image;
}


ソース

ラベル:iPhone
posted by 1.618 at 14:24| Comment(0) | iPhone | このブログの読者になる | 更新情報をチェックする

2011年04月15日

iPhoneでディフェンスゲームを作る方法

仕事でiPhoneをやる確率が高くなってきて勉強中。
色々調べてたらディフェンスゲームの作り方が乗ってたのでメモ。


タワーディフェンスゲームの作り方 (1)


そうか。敵の動きはとりあえず固定でいいんだね〜。
物体回避のロジックを組み込む必要があると思って敬遠してた。^^;

今作ってるアプリが終わったら作ってみるかぁ。
ラベル:iPhone IOS object-c
posted by 1.618 at 14:55| Comment(1) | iPhone | このブログの読者になる | 更新情報をチェックする

2010年06月17日

iPhoneのUITextFieldでリターンキーを押した時にキーボードを閉じる。

もいっちょ覚え書き。

UITextFieldで編集を終わって、リターンキーでキーボードを閉じたい時のやり方。

IBActionのメソッドを一つ用意。
UITextFieldの"Did End On Exit"にそのメソッドを紐付けて、
[textfield resignFirstResponder];
と記述してやるだけ。
要はフォーカスを外してやると。

簡単なんだが、知らないとイラつくw
posted by 1.618 at 15:06| Comment(0) | iPhone | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。