2012-05-21 3 views
0

я получил 30 из этих кодов, с той же реализации:IBOutlet UIImageView

// .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"]]; 
} 

И где-то в моем коде, Im добавив его как подпункт.

Моя проблема: есть ли способ сделать ее более коротким, чтобы она была ремонтопригодной.

+2

Что вы подразумеваете под коротким и почему вы используете IBOutlet при создании UIImageView программно? – saadnib

+0

Что мне тогда использовать? – Bazinga

+0

IBOutlet нужен только тогда, когда вам нужно установить соединение с XIB-файлами, но поскольку вы не создаете этот образ в XIB, тогда вам не нужно добавлять IBOutlet здесь. – saadnib

ответ

0

Вы можете использовать один IBOutletCollection вместо 30 IBOutlets. Вероятно, вы хотите установить тег на каждом UIImageView, так что вы все равно можете сказать им обособленно.

(Этот ответ предполагает, что вы используете перо. Удалить строки, где вы создаете экземпляр UIImageView с в viewDidLoad, если так.)

+0

Может использоваться, хотя Im использует только одно изображение? – Bazinga

+0

Если вы хотите показать одно и то же изображение 30 раз, да, конечно, ничто вас не останавливает. Вы можете повторно использовать 'UIImage', но не' UIImageView'. –

+0

Хорошо, я попробую ваш ответ. – Bazinga

0

Если вы используете имя типа - Circle1.png, Circle2.png, тогда вы можете пойти для цикла для создания этого в цикле.

Что-то вроде -

for (int i = 0; i < imageCount ; i++) { 
    circle = [[UIImageView alloc] 
        initWithImage:[UIImage imageNamed:[NSString stringWithFormat: @"Circle%d.png" , i]]]; 
} 
+0

Мое изображение - только одно. И я хочу иметь возможность использовать его снова и снова. – Bazinga

+0

рассказать точный сценарий? вы хотите то же изображение 30 раз? – rishi

+0

есть. Я хочу поставить одно и то же изображение в разных положениях/координатах. – Bazinga

0

Есть ли шаблон, где вы ставите эти взгляды в их надтаблицы? Если это так, вы можете использовать цикл for, который идет до 30, и программно создавать представления и добавлять их в свой супервизор.

Так, например:

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

Добавит 100 взглядов изображения вы хотите. Конечно, вам нужно будет отрегулировать позиции каждого из этих видов в цикле, но это общая идея.

0

при создании этого ViewController передать кадр как parameter.thats единственный меняющийся вещь обряду? ?. изображение такое же, как и других свойств .. он может работать

Смежные вопросы