2012-05-21 38 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"]]; 
} 

而且在我的代码的某个地方,进出口将其添加为子视图。

我的问题是,有没有办法缩短它的维护时间。

+2

你是什么意思缩短和为什么你使用IBOutlet时编程创建UIImageView? – saadnib

+0

我应该使用什么? – Bazinga

+0

仅当需要与XIB文件建立连接时才需要IBOutlet,但由于您不在XIB中创建这些图像视图,因此无需在此处添加IBOutlet。 – saadnib

回答

0

您可以使用一个IBOutletCollection而不是30 IBOutlets。尽管你可能想在每个UIImageView上设置标签,所以你仍然可以区分它们。

(这个回答假设你用笔尖。你实例的UIImageView S IN viewDidLoad如果是删除线。)

+0

即使Im只使用一个图像,它也可以使用? – Bazinga

+0

如果你想显示相同的图像30次,是的,没有什么能阻止你。你可以重用'UIImage's,但不能'UIImageView's。 –

+0

好的,我会试试你的答案。 – Bazinga

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]]]; 
} 
+0

我的形象只有一个。我希望能够一次又一次地使用它。 – Bazinga

+0

告诉确切的情况?你想要30次相同的图像? – rishi

+0

是的。我想在不同的位置/坐标中放置相同的图像。 – Bazinga

0

有没有到你把他们的上海华这些视图的模式?如果是这样,你可以使用一个到30的for循环,并以编程方式创建视图并将它们添加到他们的超级视图中。

因此,例如:

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

会增加,你会想要的图像视图100。当然,你需要调整循环中每个视图的位置,但这是一般的想法。

0

同时创造这个视图控制器通过帧作为parameter.thats唯一改变的仪式? ?图像是相同的,因为没有其他属性..它可能会工作