想像以上に上手い事やってくれる UIWebView On UIScrollView
UIScrollView上に、WebViewを並べてみた。
どっちかタップが検知されないんじゃないかと思ってたけど、
何もせずにうまいこと行きました。
WebViewのスクロールが終わると、次のWebViewにちゃんと移ります。
クリックしてもWebViewでクリックしたのと同じ扱い。
自前で似たものをつくることになるんだろーなーと思ってたので感動。
////UIViewController #define WIDTH 320 #define HEIGHT 460 - (void)viewDidLoad { [super viewDidLoad]; UIScrollView *scrollView = [[UIScrollView alloc] init]; scrollView.frame = CGRectMake(0, 0, WIDTH, HEIGHT); [self.view addSubview:scrollView]; [scrollView release]; scrollView.pagingEnabled = TRUE; UIWebView *webView = [[UIWebView alloc] init]; [webView setFrame:CGRectMake(0, 0, WIDTH, HEIGHT)]; UIWebView *webView2 = [[UIWebView alloc] init]; [webView2 setFrame:CGRectMake(0, HEIGHT,WIDTH, HEIGHT)]; UIWebView *webView3 = [[UIWebView alloc] init]; [webView3 setFrame:CGRectMake(0, HEIGHT*2, WIDTH, HEIGHT)]; [scrollView setContentSize:CGSizeMake(WIDTH, HEIGHT*3)]; [scrollView addSubview:webView]; [scrollView addSubview:webView2]; [scrollView addSubview:webView3]; NSString *urlString = @"http://www.google.com"; NSURL *url = [NSURL URLWithString:urlString]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; NSString *urlString2 = @"http://www.1101.com"; NSURL *url2 = [NSURL URLWithString:urlString2]; NSURLRequest *request2 = [NSURLRequest requestWithURL:url2]; NSString *urlString3 = @"http://www.cnn.co.jp"; NSURL *url3 = [NSURL URLWithString:urlString3]; NSURLRequest *request3 = [NSURLRequest requestWithURL:url3]; [webView loadRequest:request]; [webView2 loadRequest:request2]; [webView3 loadRequest:request3]; [webView release]; [webView2 release]; [webView3 release]; }
PlayStationSuiteSDKはやっぱりMonoらしい。
PlayStationSuiteSDKはやっぱりMonoらしい。早いとこ今の案件を片付けていじっておきたい。
Processingのタブで作ったclassはインナークラス [Processing]
読んで字のごとく。
Processingのタブで作ったclassはインナークラス。
最初は、タブごとに別ファイルという認識だったけど、
タブに作ったclassはインナークラスになる。
他人の作ったpdeを部分的に使って・・・ということをやると結構混乱するかも。
Androidのプロジェクト名・パッケージ名の変更 [Android]
しばらくやってないと忘れるので、備忘録。
Androidアプリのプロジェクト名、パッケージ名の変更。
プロジェクト名:OldApp パッケージ名:com.myapp.old
この時点で、
OldApp/src/com/myapp/old/...
という状態。
これを、
プロジェクト名:NewApp パッケージ名:com.myapp.new
に変更する。
まず、ディレクトリ(フォルダ)ごとコピーして、名前を変更する。
NewApp/src/com/myapp/old/...
このプロジェクトの root directoryだけが変わっている状態。
Eclipse起動する。
File > import > General > Existing Projects into Workspace
で、Next
Select root directory
でコピーしたファイル1式の、Directoryを選択。
AndroidManifest.xml の パッケージ名を変更する。
この時点で gen が変わる。
srcの、
com.myapp.old を右クリックで、 Refactor > Rename
New name に、 com.myapp.new
で、 Upadate references と Rename subpackages にチェック。 > OK
NewApp/src/com/myapp/new/...
import のところもちゃんと変わってる。
Objective-Cのメモリ管理で自信がなくなる瞬間は誰しも必ずあると思う。 [iOS]
「エキスパート Objective-Cプログラミング 〜 iOS/OS Xのメモリ管理とマルチスレッド 〜」という本を読んでたところ、
「自分が生成したオブジェクトの所有者は自分である」という表現で、自分がなんだかわからなくなって、自分探しをしてみました。
#import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSObject *object1 = [[NSObject alloc] init]; NSObject *object2 = nil; object2 = object1; [object1 release]; NSObject *object3 =nil; object3 = object2; [object2 release]; } return 0; }
import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSObject *object1 = [[NSObject alloc] init]; NSObject *object2 = nil; object2 = object1; [object2 release]; NSObject *object3 =nil; object3 = object2; [object3 retain]; [object1 release]; } return 0; }
結構、どっちがどういうことか、わからない人いるんじゃないの?と思った次第です。
default.properties と project.properties [Android]
どちらが何なのかまだ把握してないけど、
人様からもらったコードで、java.utilですら、「そんなものありません」と怒られててエラーが出ている。
Project > Property > Android と見て行ったら、Androidのところで Invalid のエラー。
自分で作ったプロジェクトでは、defalut.properties
もらったコード(エラーがでているもの)が、project.properties
となっている。中身の形式は一緒なので、コピって、名前をdefaultにしてあげて、
Android Tools > Fix Project Properties
を押して、eclipse再起動。
これでビルドができた。 Fix Project Propertiesはいらないかも。
SDKのバージョン違いなのかなーという感じがしてますが、
今度調べるということで。
cocos2dのreplaceSceneで落ちるとき。
deallocでreleaseしているものがあったら、autoreleaseにしてみること。
以上。