2015-03-13 36 views
-7

因此我需要使用for循環以編程方式添加3個圖像這是我的代碼,它不正確,我剛剛嘗試。XCODE Obj-C以編程方式添加UiimageView在

for(int i = 1; i < 4; i++){ 
     UIImageView *[i] = [[UIImageView alloc] initWithFrame:CGRectMake([i]*50, 50, 250, 250)]; 

[self.view addSubview:[i]]; 
    } 

其中[i];將1,2和3任何幫助,將不勝感激。謝謝

+0

該代碼被創建在相同的位置3周的UIImageViews。這就是爲什麼你不能在視圖中看到所有三個。 – DilumN 2015-03-13 18:39:44

+2

你的建築語法是......太可怕了。您需要在輸入'[i]'的地方使用變量名稱。如:UIImageView * imageView = ... addSubview:imageView];'。 – 2015-03-13 18:41:11

+1

您在一個statement_中使用了兩個不同事物的相同變量。你期望會發生什麼? – 2015-03-13 19:08:08

回答

1

你的語法錯了。這更多是你需要的。

for (int i=0;i<3;i++){ 
    UIImageView *image=[[UIImageView alloc] initWithFrame:CGRectMake(i*50, 50, 250, 250)]; 
    [self.view addSubView:image]; 
} 

然而,這是沒有多大用處的是你的圖像從任何地點參考,所以你不能填充或輕易調整他們。

+0

所有視圖都有相同的框架 – vikingosegundo 2015-03-13 19:17:26

+1

正確,但這不是問題所在,爲什麼-1?問題中的代碼示例顯然是無用的。但問題是代碼不起作用。誰知道這些圖像的計劃一旦被添加就知道了什麼。 – 2015-03-13 19:28:36

+0

'CGRectMake([i] * 50,50,250,250)' - 我們知道OP想要改變每個圖像的幀。 – vikingosegundo 2015-03-13 20:10:58

0

將變量名稱從[i]更改爲某個名稱,如imageToAdd

0
CGFloat xMarging = 0; 
CGFloat imageOriginX = 0; 
CGFloat imageOriginY = 0; 
CGFloat imageWidth = 250; 
CGFloat imageHeight = 250; 
NSInteger numerOfImages = 3; 
for (NSInteger i = 0; i < numerOfImages; i++){ 
    [self.view addSubview:[[UIImageView alloc] initWithFrame:CGRectMake(xMarging + i * imageWidth, 
                     imageOriginY, 
                     imageWidth, 
                     imgageHeight)]]; 
} 

假設你希望他們並排如[] [] []

相關問題