2010-06-29 65 views
1

我有一堆'rowviews',我想放在一個垂直滾動視圖。我在IB中創建了這個rowView視圖作爲單獨的筆尖。它們的尺寸爲1024/200(ipad)。現在我想把它們一個接一個地放在我的父級UIScrollView中。我嘗試了一個簡單的[vScroll addSubview:rowView],但是這使他們超越了彼此(我使rowview透明來檢查它)。所以後來我開始愚弄每一行視圖的界限無濟於事。這是我的代碼。注意「self.yExtentSoFar」被初始化爲0。試想一下,下面呼籲每一行代碼:UIView setBounds UIScrollView地獄!

  MyRowView *rowView = [[MyRowView alloc] init]; 

    float calculatedWidth = 0; 
    // minus nav bar 
    float calculatedHeight = 0; 
    [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
    UIInterfaceOrientation orientation = [UIDevice currentDevice].orientation; 
    if (orientation == UIInterfaceOrientationPortrait){ 
     // iPad 
     calculatedWidth = 768.0; 
     calculatedHeight = 960.0; 
    }else{ 
     // iPad 
     calculatedWidth = 1024.0; 
     calculatedHeight = 704.0; 
    } 

    [self.vScroll addSubview: rowView.view]; 
    [rowView.view setBounds:CGRectMake(0, self.yExtentSoFar, calculatedWidth,200)]; 
    [self.vScroll setContentSize:CGSizeMake(calculatedWidth, yExtentSoFar+200)]; 
    self.yExtentSoFar += 200; 

所以之前我試過設置界定的rowviews上層建築出現對方。我可以理解。當我設置邊界時,第二排視圖並沒有像預期的那樣出現在1st下方,相反,我不得不拉下vScroll,並且2nd出現在第一個關閉屏幕的上方!

有人能指出我要去哪裏嗎?非常感謝,

邁克

+0

只是一個想法,X和Y是0,0在頂部左側角球權「的框架,邊界,和中心的關係」? – 2010-06-30 00:08:24

+0

在iPhone上查看,是的。 – 2010-06-30 00:26:49

+0

好的,那麼爲什麼200的y值會將它置於負數? – 2010-06-30 00:37:16

回答

3

你想通過設置他們的frame來佈局你的子視圖。

具體來說,你是混淆參考座標..界限是指多少該視圖顯示。鑑於框架是應該將視圖置於其超級視圖中的位置(大小爲&)。

View Programming Guide for iPhone

+0

完美! Thankyou :) – 2010-06-30 05:33:42

+0

另外,在處理'UIScrollView'中的視圖集合時,我將它們放在容器視圖中。這有助於當我需要遍歷「滾動」子視​​圖來處理它們時。如果您依賴'myScrollView.subviews',您將會看到包含滾動條指示器視圖! (容器視圖是myScrollView的唯一子視圖) – ohhorob 2010-06-30 05:44:06

2

你做錯了什麼;-)你在這兒解釋或多或少重新實現你開始使用哪一個UITableView的。 Use a UITableView和一個自定義表格視圖單元格。它會讓你的生活變得更容易很多

+0

使用自定義的UITableCell視圖聽起來更復雜。我只想在UIScrollView中查看我的視圖。他們爲什麼會出現在彼此之上(屏幕外)而不是彼此之下。我無法想象每當需要垂直滾動的情況時,人們使用UITable。 – 2010-06-30 02:36:16

+0

不要太囉嗦,但實際上,無論你能否想象,人們都會經常使用UITableViews。根據你在問題中的描述,這正是你所需要的。瞭解如何使用表格視圖。正如我之前所說,它會讓你的生活變得更加容易。相信我。 ;-) – 2010-06-30 03:27:20

+0

首先謝謝你的回答。我只是覺得重新使用現有的組件只有在您獲得免費的功能時纔有用,否則您將不得不創建。一旦我實現了所有的委託方法和表格的東西,並與自定義表格單元格視圖混在一起,我可以寫一個vScrollView的3行。我也只是想知道我的事情出了什麼問題。 @ohhorob回答了我的問題。 Thankyou雖然你的答案!下次我會試一試。 – 2010-06-30 05:33:11