iOS 4.2でUIImageViewを動的に作成しようとすると、ヘッドデスクのポイントを達成しました。iPhoneで動的に作成されたUIImageViewsが表示されない
1)私が解放したiViewを解放しないの両方で試したセットアップ
UIImageView *iview = [[UIImageView alloc] initWithFrame:CGRectMake(20, 20, 95, 149)];
iview.tag = 200; // see note 1
iview.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
[self.view addSubview:iview];
[iview release];
:
これは私のトラブルを引き起こしているコードです。
2)これは、簡潔なバージョンは私のために働いていなかったので、私は、見てよかを示すために拡張され
NSString *img = ...[see note 2];
NSLog(@"Filename: %@", img);
UIImageView *pIV = (UIImageView *)[self.view viewWithTag:200];
if (pIV == nil) {
abort();
}
UIImage *pI = [UIImage imageWithContentsOfFile:img];
if (pI == nil) {
abort();
}
[pIV setImage:pI];
ペイオフ。
注1:上記のハードコード値(200、フレーム境界など)のほとんどは、いずれかの#defineであるか、のiView ALLOCコードが範囲内であることforloopで計算。簡潔さのために残しておきますが、あなたがそれが関連していると思ったら私に知らせてください。
注2:09:これはNSBundleに見た後にファイルパスを返すだけのメッセージである等のNSLog出力は
2011-01-30 22である54.767 Ribbitの[13529:207]ファイル名: /ユーザ/ RIP /ライブラリ/ Application Support/iPhoneシミュレータ/ 4.2 /アプリケーション/ C421AA9F-45BB-41AB-8CB0-1540FABB56D3/ribbit.app/cardfront_a7.png
の.pngが存在しない、との両方の歩哨nilではありません(したがって、abort()も発生しません)。
私はそれが基本的なものだと確信しています。私が試した
物事:UIImageViewを生成するために使用されるIB
1)。正しく配線されたら、フレームを見ることができ、IBでデフォルトとして与えられたイメージが示されました。しかし、私はまだ画像を変更することができませんでした。そのため、私は動的に作成しています...もっと簡単になると思いました。ええ。
2)は、各種のiViewのインスタンス変数を使用してみましたが、それは扱いにくいでした(生成されているこれらのUIImageViewの10がある)と、彼らはどちらか動作しませんでした。
3つのすべての試みは、同じ動作で失敗しましたので(正常に動作、画像だけを見ることができない)、私はそれだけでいくつかの愚かな小さなものであると仮定しています。
あなたのご提案があれば歓迎します。
ようこそStackOverflow!よく書かれた質問の功績。システムが許可されているときに戻って、正しい答えを選択してください。 – Moshe