Hatena::Groupiphone-dev

wadadanetの日記

2009-04-15UIScrollViewで真ん中ってどうするんだろ

1時間ほどですっごい簡単なネタアプリを作ろうと思ったら、

躓いた。。。orz

UIScrollViewでズームアウトをすると、左上に勝手に移動しやがる。。。

それも、かっこよくアニメーションしながら移動しやがる。

憎いぜApple

いや、縮小した場所にいてくれたらいいから、、、


このページを参考にsrollViewDidEndZoomingを変更しましたが、

挙動が変

http://www.electrodream.jp/iphonedev/index.php/2009/04/uiscrollviewの中身をズームアウトした際、左上00に自動的/」

- (void)scrollViewDidEndZooming:(UIScrollView*)scrollView withView:(UIView*)view atScale:(float)scale  
{  
    //ここでズームの変更も拾えるので、サイズを設定する//
	CGRect newRect = scrollView.frame;
	float firstWidth = 261.f;
	float firstHeight = 420.f;
	
	//firstWidthにはScrollViewの最初の幅が入っている
	if(firstWidth < view.frame.size.width){//超えた場合は0に//
		newRect.origin.x = 0;
	}else{
		CGFloat fTemp = (firstWidth - view.frame.size.width) / 2;
		newRect.origin.x = fTemp;
	}
	
	//firstHeightにはScrollViewの最初の高さが入っている
	if(firstHeight < view.frame.size.height){
		newRect.origin.y = 0;
	}else{
		CGFloat fTemp = (firstHeight - view.frame.size.height) / 2;
		newRect.origin.y = fTemp;
	}
	_scrollView.frame = newRect;
}

アニメーションしなくていいんだけどなぁ。。。

ujpsacicqyujpsacicqy2014/06/24 12:45ubvinjqipof.efw, <a href="http://www.vohuogkjvi.com/">whnekhnasu</a> , [url=http://www.ihqukgkrtk.com/]jftqdjdvbi[/url], http://www.hgnboudbhm.com/ whnekhnasu

2009-03-21UITabBarController + UINavigationController + UITableViewControllerはどうするんでしょ

表題の通りですが、なにやら詰まってしまった。

NIBsを使うのだろうけど、、、、

わ、わからないっす。

■ApplicationDelegate.h

 UIWindow *window;
 UITabBarController *tabBarController;

■ApplicationDelegate.m

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
    [window addSubview:tabBarController.view];
}

▼MainWindow.xibは

FIle's Owner

Tab Bar Controller( tabBarControllerとリンク )[*1]

└Tab Bar(UITabBar)

└Selected... ViewController( TestViewController )[*2]

 └UITabBarItem


・[1] UITabBarControllerの設置 - tabBarControllerとリンク

・[2] 一つ目のアイテムのClassをTestViewController

・今は必要ないので2つ目は削除



■TestViewController.h

■TestViewController.m

特になし

TestViewController.xibは

File's Owner(TestViewController)

NavigationController(UINavigationController)[*1]

└NavigationBar

└ViewController( TestTableViewController )[*2]


・[1] UINavigationControllerの設置

・[2] UINavigationController内のUIViewControllerのClassをTestTableViewControllerに変更



■TestTableViewCOntroller

新規作成のTableViewControllerです。



こんな感じです。

どこかおかしいのでしょうか?

画面は真っ黒です。

KishikawaKatsumiKishikawaKatsumi2009/03/22 02:01NavigationControllerはMainWindow.xibにおきます。
Tab Bar Controllerの中に入るように、NavigationControllerのアイテムを
ドラッグするとよく分かります。
あと「テレビ番組表」コードが参考になると思います。

2009-03-13つまり杉な自分。。。orz

はやく、解決したことをここに書きたいのに、、、

また詰まっちゃいました。

■したい事

5枚のCGImageを透明度を変えて合成


■CODE

//tmpPhotosArrayには5枚ぐらいのCGImageRefが入っています。

CGSize size = CGSizeMake(320, 420);
UIGraphicsBeginImageContext(size);
CGContextRef context = UIGraphicsGetCurrentContext();

for(int i=0; i<kPhotoNumber;i++){
    CGImageRef cImg = (CGImageRef)[tmpPhotosArray objectAtIndex:i];
    [cImg setAlpha:0.1];  //ここでエラー(*エラー1)
    CGContextDrawImage(context, rect, cImg);
    CFRelease(cImg);
}
UIGraphicsEndImageContext();

//ここでContextをUIImageに変換ってのを考え中...

(エラー1)

  • [NSCFType setAlpha:]: unrecognized selector sent to instance 0x13ca90

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFType setAlpha:]: unrecognized selector sent to instance 0x13ca90'


ってな感じになっちゃうんですよ。。。

そもそも、setAlphaつかうのかな。。。

obysobys2009/03/13 16:10UIImageのdrawInRectを使えば透明度を指定して画像を重ねられますよ。

UIImage* img1 = [UIImage imageNamed:@"image1.png"];
UIImage* img2 = [UIImage imageNamed:@"image2.png"];

CGSize size = { 240, 320 };
UIGraphicsBeginImageContext(size);

CGRect rect;
rect.origin = CGPointZero;
rect.size = size;

// レイヤー1 ベースになる画像
[img1 drawInRect:rect];

// レイヤー2 透明度を指定して重ね合わせる
[img2 drawInRect:rect blendMode:kCGBlendModeNormal alpha:0.8];

UIImage* shrinkedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

imageView.image = shrinkedImage;

paellapaella2009/03/13 22:04画像に対して透明度を設定しようとしていますが、画像のデータを変えるのではなく、ビューに対して透明度を設定する、という視点ですよ。
CGImageRefはRefとあるとおりReadOnlyです(確か)。

wadadanetwadadanet2009/03/15 12:50>>obysさん,paellaさん
ありがとうございます!!
解決しました!
CGImageRefってそういう使い方しかできないんですね。
なにやら、勘違いしてたみたいです。

本当にありがとうございました。

2009-03-03

おしえてください。。。

14:41

かなり詰まってます。

rootViewController

├gameViewController

 └gameView

├highScoreViewContlloer

 └highScoreView

1)「rootViewController.h」

GameViewController *gameViewController;

GameView *gameView;

2)「rootViewController.m」

gameViewController = gameViewController alloc] initWithNibName:@"GameView" bundle:nil];

みたいな感じで作ってるけど、

ゲームが終わったら、[gameViewController release]しますよね?

で、またゲームを作ろうとしたらどうしたらいいんだろ。。。

2)をもう一度実行したら、releaseしてるからつくれないし。。。

たぶん、初心者丸出しの悩みなんだろうなぁ。。。orz

fladdictfladdict2009/03/03 17:28一番手っ取り早いのは、[gameViewController restart] をつけて、リリースしないとかではないかと。
HisScoreViewControllerって重くなさそうだからそれでいけるんじゃないでしょうか。

horigoodhorigood2009/03/03 22:02最初にallocで作っているわけですから、「releaseしてるからつくれない」ってことはないはずです。上記の説明だけでははっきりしませんが、どこかで何か勘違いされているような気がします。

wadadanetwadadanet2009/03/04 18:09>>fladdictさん、horigoodさん
ありがとう御座います。
releaseしても使いまわせるんですね。

もうちょっとがんばってみます。

horigoodhorigood2009/03/04 19:17「使いまわせる」というのとは、ちょっとニュアンスが…

初めにalloc & init した gameViewController が、他のオブジェクト内でretainiされていなければ(保持カウントが1ならば)、releaseした時点で保持カウントは0になり、deallocされてオブジェクトの実態は無くなります。
再度、gameViewController を使う場合には、改めて alloc & init してやるわけですから、これは最初のオブジェクトとは別物です。

ちなみに、releaseと再allocを別のメソッドでおこなう場合には、releaseの際に

[gameViewController release];
gameViewController = nil;

と、変数に nil を代入しておいた方が安全です。

wadadanetwadadanet2009/03/13 12:26基本が分かってなかったみたいです。
参照カウントってのがあるんですね。。。
解決しそうです。

ありがとうございました。

StevenSteven2012/05/30 01:59It's wondreufl to have you on our side, haha!

rrqmajdozgrrqmajdozg2012/05/30 18:00JL3zZ0 <a href="http://ikkvfcquopbj.com/">ikkvfcquopbj</a>

pukaowgunrdpukaowgunrd2012/05/30 22:56d19Mch , [url=http://akelmgzgcnxu.com/]akelmgzgcnxu[/url], [link=http://vbneqrvxyuln.com/]vbneqrvxyuln[/link], http://hpfndvksynwi.com/

wxzgpvdwxzgpvd2012/05/31 22:45T8UxkW <a href="http://jvtmekxhdvtz.com/">jvtmekxhdvtz</a>

pgsqswcwkqopgsqswcwkqo2012/06/01 04:04XDTbjz , [url=http://qkylrcnrskem.com/]qkylrcnrskem[/url], [link=http://dsvifxdxilnf.com/]dsvifxdxilnf[/link], http://zpbcngkdkwrd.com/