2012-07-28 63 views
1

我有我認爲是一個新手問題... 我做了一個動態滾動視圖,其中圖像和標籤以編程方式添加爲子視圖。問題是隻有最後一個我添加爲子視圖顯示。 另外,當我讀到「addSubview:」它說:「添加一個視圖到接收者的子視圖列表的末尾。」這是否意味着只有最後添加的子視圖應該顯示?在那種情況下,我該如何讓兩者都可見?如何顯示幾個子視圖?

由於提前, 湯姆

CODE:

for(int i = 0; i < [famorableArray count]; i++){ 

    UIButton *famorableButton = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    [famorableButton setFrame:CGRectMake(0.0f, 5.0f, 57.0f, 57.0f)]; 
    [famorableButton setImage:personLogo forState:UIControlStateNormal]; 

    NSString *famString = [NSString stringWithFormat:@"%@", [[[famorableArray objectAtIndex:i] substringFromIndex:8] capitalizedString]]; 
    NSLog(@"%@", famString); 
    UILabel *famLabel = [[UILabel alloc] initWithFrame:CGRectZero]; 
    famLabel.text = famString; 
    NSLog(@"Test2 %@", famLabel.text); 

    // Move the buttons position in the x-demension (horizontal). 
    CGRect btnRect = famorableButton.frame; 
    btnRect.origin.x = totalButtonWidth; 
    [famorableButton setFrame:btnRect]; 

    CGRect labelRect = famLabel.frame; 
    labelRect.origin.x = totalButtonWidth + 28.5f; 
    [famLabel setFrame:btnRect]; 


    // Add the button to the scrollview 
    [famScroll addSubview:famLabel]; 
    [famScroll addSubview:famorableButton]; 

    // Add the width of the button to the total width. 
    totalButtonWidth += famorableButton.frame.size.width + 30; 

} 
[famScroll setContentSize:CGSizeMake(totalButtonWidth, 79.0f)]; 

回答

0

我的壞...這是複製粘貼後的失敗編輯。意外地將btnRect用作標籤的框架。感謝你的努力反正@Martin :)

1

對於每個添加的子視圖,你必須設置frame屬性。該框架是視圖在超視圖中的位置。 「添加到子視圖列表」並不意味着任何自動佈局。所以我認爲你的所有子視圖都是可見的,但重疊。

+1

也需要設置scrollView.contentSize - 這將是一個CGPoint寬度等於(通常)添加的視圖寬度(對於水平滾動)和高度總和等於增加的視圖高度。 – 2012-07-28 16:17:39

+0

對不起,忘了添加代碼......把它放在原來的文章。 認爲我有你說的一切,雖然... – Tom 2012-07-28 16:30:13

+0

不允許在7小時內發佈我自己的答案,但繼承人我試圖寫: 我的壞...這是複製粘貼後的失敗編輯。意外地將btnRect用作標籤的框架。 感謝您的努力反正@Martin :) – Tom 2012-07-28 16:48:00