2

カスタマイズしたUIButtonクラスにUIImageViewとUILabelがあります。

しかし、私が次のようなコードを持っている場合

self.productImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
self.productName = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 20)];    

self.productImageとself.productNameは、割り当て後は常にnilになります。

一時変数を使用してからプロパティに割り当てると、うまく機能します。

UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
self.productImage = imgView;
UILabel *name = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 20)];
self.productName = name;

私はObjective-Cを初めて使用しますが、最初の使用法で何が問題になっているのかわかりません。任意の提案をいただければ幸いです!

4

2 に答える 2

1

あなたの説明から、ARCを使用しているように聞こえ、プロパティ/インスタンス変数の両方がweak(または__weak)として宣言されています。そのため、強力なローカル変数は暗黙的にオブジェクトが早期に解放されるのを防ぎます。

カスタム ボタンはイメージとラベルを保持する予定なので、宣言から をstrong削除して、プロパティとインスタンス変数の両方を作成する必要があります。weak

于 2012-08-27T11:44:15.800 に答える
0

それを試してみてください :

NSURL *imageurl = [NSURL URLWithString:@"http://www.chakrainteractive.com/mob/ImageUpoad/pic2-2.png"];

NSData *imagedata = [[NSData alloc]initWithContentsOfURL:imageurl];

UIImage *image = [UIImage imageWithData: imagedata];

[logoImg setImage: image];
于 2012-08-27T12:03:14.853 に答える