簡體   English   中英

如何在“ for”循環中添加子視圖

[英]how to add subviews in a 'for' loop

我只是想為數組中的每個對象添加一個UIView,而在屏幕上不顯示3個以上,但視圖彼此不相鄰。 每個視圖之間有很大的差距(一個視圖寬度)。 這就是我所擁有的;

int numberOfUsersOnScreen;

if (array.count < 3) {
    numberOfViewsOnScreen = array.count;
}else{
    numberOfUsersOnScreen = 3;
}

double width = (self.scrollView.frame.size.width/numberOfViewsOnScreen);
CGRect r = CGRectMake(0, 0, width, 1200);
[self.usersScrollView setContentSize:CGSizeMake(width*array.count, 0)];

for (int i = 0; i < users.count; i++) {  
       r.origin.x = width * i;
       UIView * view = [[UIView alloc] initFrame:r];
       [self.scrollView addSubview:view];
}    

橙色是下面的scrollView

嘗試這個:

int xPosition = 0;
for (int i = 0; i < users.count; i++) {  
   UIView * view = [[UIView alloc] initFrame:CGRectMake(xPosition, 0, width, 1200)];
   [self.scrollView addSubview:view];
   xPosition += width;
}    

代替

[self.scrollView setContentSize:CGSizeMake(width*array.count, 0)];

它應該是

[self.scrollView setContentSize:CGSizeMake(width*array.count, self.scrollView.frame.size.height)];
for (int i = 0; i < users.count; i++) {  
   r.origin.x = width * i;
   UIView * view = [[UIView alloc] initFrame:r];
   [self.scrollView addSubview:view];
} 

這樣,您還可能在視圖對象上發生內存泄漏

for (int i = 0; i < users.count; i++) {  
   r.origin.x = width * i;
   UIView * view = [[UIView alloc] initFrame:r];
   [self.scrollView addSubview:view];
   [view release]; 
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM