0

同じ実装で、これらのコードを 30 個取得しました。

// .h

@interface ViewController : UIViewController{
IBOutlet UIImageView *circle;
IBOutlet UIImageView *circle2;
}
@property (nonatomic, retain) IBOutlet UIImageView *circle;
@property (nonatomic, retain) IBOutlet UIImageView *circle2;

// .m

@implementation ViewController

@synthesize circle;
@synthesize circle2;

- (void)viewDidLoad
{
circle = [[UIImageView alloc]
                      initWithImage:[UIImage imageNamed:@"Circle.png"]];
circle2 = [[UIImageView alloc]
                      initWithImage:[UIImage imageNamed:@"Circle.png"]];
}

そして、私のコードのどこかに、それをサブビューとして追加しています。

私の問題は、それを維持しやすくするために、短くする方法はありますか。

4

4 に答える 4

0

Circle1.png- ,のような名前を使用するCircle2.pngと、ループでこれを作成するために for ループに移動できます。

何かのようなもの -

for (int i = 0; i < imageCount ; i++ ) {
    circle = [[UIImageView alloc]
                  initWithImage:[UIImage imageNamed:[NSString stringWithFormat: @"Circle%d.png" , i]]];
}
于 2012-05-21T05:49:45.950 に答える
0

これらのビューをスーパービューに配置する場所にパターンはありますか? その場合、30 になる for ループを使用して、プログラムでビューを作成し、スーパービューに追加することができます。

たとえば、次のようになります。

   for (i = 0; i < 100; i++)
    {
        UIImageView* circle = [[UIImageView alloc]
                      initWithImage:[UIImage imageNamed:@"Circle.png"]];
        [self.view addSubview:circle];
    }

必要な画像ビューを 100 追加します。もちろん、ループ内のこれらの各ビューの位置を調整する必要がありますが、これは一般的な考え方です。

于 2012-05-21T05:50:52.940 に答える
0

IBOutletCollection30 の代わりに1 つを使用できますIBOutlets。ただし、それぞれにタグを設定して、UIImageViewそれらを区別できるようにすることをお勧めします。

(この回答では、ペン先を使用することを前提としています。その場合は、UIImageViewsをインスタンス化する行を削除してくださいviewDidLoad。)

于 2012-05-21T05:51:09.807 に答える
0

このviewcontrollerを作成している間、フレームをパラメーターとして渡します。儀式を変更するのはそれだけです??.画像は同じで、他のプロパティがないため..動作する可能性があります

于 2012-05-21T07:04:26.530 に答える