PixelContactリリース
ドット絵をアドレス帳に登録して、
電話の発着信時に表示するように出来るアプリ、
PixelContactがリリースされました。
購入はこちらから(115円です。)
ドット絵をアドレス帳に登録して、
電話の発着信時に表示するように出来るアプリ、
PixelContactがリリースされました。
購入はこちらから(115円です。)
kuniです。
「http://~~/128459253/roロゴ_normal.png」
と言うようなxmlに書かれたアドレスをNXXMLパーサーで取得しようと思い、
URLエンコードは、
http://akisute.com/2008/12/cocoaiphoneurl.html
に書いていただいている物などを使えばいいのかと思いきや、
そもそも、
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
のStringに入ってくる時点で、なぜか
「http://~~/128459253/ro」
という文字列になってしまっていました。
http://journal.mycom.co.jp/column/iphone/007/index.html
を見ると、NSXMLParserの方が高速みたいですし、
こちらを使ってみようかと思います。
※追記
切れてしまう問題かと思いきや、
NSXMLParserの使い方が間違っていました。
ファイルをダウンロードする時などと同様に、
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
に来たstringは全部ではないので
(長さにもよるとは思いますが、
英語では一回で全文字来るようなのですが、
日本語では1文字1文字でしかここには来ないようです)、
一旦、NSMutableStringなどに入れ、
-(void)parser:(NSXMLParser *)parser
didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName
の部分で完了が解るので、そこで初めて、貯めておいた文字列を使う、
という流れにしないとだめでした。
読んだ文字列をまとめた物を
送ってくれるメソッドが欲しいなあとも思いますが・・
これで取りあえず解決できました。
imagePickerControllerのdidFinishPickingImageが実行された後、
イメージをそのまま使うと、動作には問題ないようなのですが、なぜか
「<Error>: CGAffineTransformInvert: singular matrix.」
というエラーが出てしまっていたので、
一度、
UIGraphicsBeginImageContext(image.size);//イメージをそのまま使うとエラーが出るようなので一旦置き換える//
CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height);
[image drawInRect:rect];
// 描画した画像を取得する
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
と言ったような形で、置き換えた物を使用しました。
これだと、出ないようです・・。
※imagePickerControllerのプロパティ、
allowsImageEditingがYESだと、
この問題は起こらないようです。
kuniです。
UIBarItemのプロパティ「enable」がありますが、
これをinterface builderからNOにしておくと、
OS2.1以降では勝手に半透明になってくれますが、
OS2.0では半透明になりません。(意外にもOS2.1でも半透明になりました。)
なのであらかじめ透明度を設定したpngを用意しておき、
UIBarItemのimageを入れ替える方法で回避しようかと思いきや、
なぜか下記のように、もう一度同じイメージをスクリプトで設定し直すと、
効くようになりました。
NSString* model = [[UIDevice currentDevice]systemVersion];
NSComparisonResult result_os = [model compare:@"2.0"];
if(result_os == NSOrderedSame){
//このバージョンの場合、ボタンが透明にならない。だが一度置き換えるとなぜか効くようになる。//
NSString *imgPath = [NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] resourcePath] , @”btn_setting.png”];
UIImage *settingBtnImage = [UIImage imageWithContentsOfFile: imgPath];
settingBtn.image = settingBtnImage;
}
interface builderのバグか・・
kuniです。
UIScrollViewにaddSubViewした時、
ズームインした時は問題ないのですが、
ズームアウトした時、中のViewが自動的に左上に戻ってしまいますよね。
プロパティで簡単に切れない物か・・と思ったのですが、
特に無いようなので、delegateメソッド「scrollViewDidScroll」に
位置調整を入れ、回避しました。
———-
- (void)scrollViewDidScroll:(UIScrollView *)_scrollView{
//ここでズームの変更も拾えるので、サイズを設定する//
CGRect newRect = scrollView.frame;
//firstWidthにはScrollViewの最初の幅が入っている
if(firstWidth < imgView.frame.size.width){//超えた場合は0に//
newRect.origin.x = 0;
}else{
CGFloat fTemp = (firstWidth – imgView.frame.size.width) / 2;
newRect.origin.x = fTemp;
}
//firstHeightにはScrollViewの最初の高さが入っている
if(firstHeight < imgView.frame.size.height){
newRect.origin.y = 0;
}else{
CGFloat fTemp = (firstHeight – imgView.frame.size.height) / 2;
newRect.origin.y = fTemp;
}
scrollView.frame = newRect;
}
———-
ただ、ご察しの通り、少し問題もあって、
UIScrollViewの位置自体を変更しているので、
例えばズームアウトして縮小した場合、
UIScrollViewは画面真ん中の方に来ることになるので、
左上の方をつまんでも、反応しなくなります。
それでも、左上に行ってしまうよりはいいと思うので、
このまま使おうと思います。
※他の方法としては、scrollViewに一定の大きさの透明のViewを
もう一つ敷いておく、とかでしょうか。
各国の販売チャートが一色になりました。
(唯一カナダは販売していないそうです)

Apple – iTunes – iTunes Store – Charts – Top 10 Apps – Free
やはり期待度高いんですね。
すごいです。