我在動態添加子視圖到UIScrollView時遇到了很多麻煩。滾動視圖對在NIB中創建的內容工作正常,但由於要顯示的子視圖取決於我的應用程序中的數據(圖像,標籤,單選按鈕等的混合),我需要能夠動態地創建和顯示它們。在UIScrollView中動態添加子視圖不出現
根據我讀過的所有內容,它在各種網站和Apple文檔中都顯得非常簡單。在視圖控制器的viewDidLoad,我已經添加了下面的代碼,
UILabel *testLabel = [[UILabel alloc] init];
[testLabel setFrame:CGRectMake(50, 50, 100, 40)];
[testLabel setText:@"My Test label"];
[scrollView addSubview:testLabel];
[testLabel release];
標籤將不會出現在滾動視圖在所有的,但如果我添加了testLabel到self.view,隨後便出現(但不是在滾動內容顯然)。我甚至嘗試將代碼添加到viewDidAppear中,以防我誤解了沒有運氣的事件順序。
當我檢查調試器時,我注意到滾動視圖的地址是0x0,我認爲它的意思是null,由於某種原因,這可以解釋爲什麼它不工作。我假設如果我將這個scrollView指針連接到IB的實際滾動視圖,它會自動分配正確的地址。這是不正確的?如果是這種情況,我該如何獲取視圖的地址?
- UPDATE -
感謝您的所有反饋。我按照每個人的建議檢查了一切,當然這一切都是正確的。我不需要設置內容的大小,因爲我在NIB中有一些其他虛擬標籤(用於測試滾動是否正常)。但我會記住,在以後的日子裏:-)
有趣的是,雖然在再次檢查代碼並沒有做任何改變之後,我再次運行它,它只是工作!不知道爲什麼,但我會後的原因如果我看着辦吧......
您是先撥打[super viewDidLoad]嗎? – Colin
你可以發表更多的代碼嗎?特別是,我對a)如何初始化UIScrollView實例感興趣,以及b)您已將scrollView附加到self.view的父ViewController中的位置。謝謝! –
@AsimIhsan我沒有動態創建滾動視圖本身,只有子視圖。我使用Interface Builder在UIViewController中創建了滾動視圖,並將其設置在那裏,因爲我無法以其他方式使用它。 – richard