2011-12-13 58 views
1

我遇到了UITableView問題,特別是scrollToRowAtIndexPath。這裏我們分別設置一個section-header-height和row-height。稍後,當顯示鍵盤時,我調整了tableview的大小並使用scrollToRowAtIndexPath滾動到當前涉及的單元格。問題是,在嘗試3種不同類型的定位之後,只有UITableViewScrollPositionTop被正確定位,而UITableViewScrollPositionMiddleUITableViewScrollPositionBottom被錯置。我這裏還有截圖:iOS UITableView scrollToRowAtIndexPath行爲不正確

UITableViewScrollPositionTopUITableViewScrollPositionMiddle/Bottom

象中所示的圖像中,頂部定位把排在頂部,而中部和底部定位在放大約1行了中間行的(對於)。這隻發生在這個視圖(它在其他視圖上工作正常)。

tableview有固定的邊距和靈活的寬度/高度(由IB中的所有標記表示爲鮮紅色)。

我試着檢查tableview的原點,它表示0,0。當我將origin.y移動幾個像素時,tableview會向下移動這個量,所以這不是由tableview原點造成的。

我已經使用這個代碼來獲得調整前的indexPath(注意,這正常工作的其他意見):

NSIndexPath *indexPath = [tblView indexPathForRowAtPoint:self.frame.origin]; 
//resize the tableview 
[tblView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES]; 

爲什麼是這個位置換檔發生的任何想法?

在此先感謝。

回答

3

好的。現在我知道這個問題的原因,我想我必須在這裏分享它,因爲我首先在這裏問。

這是因爲之前的開發人員在xib文件中將UITableView的Scroll View Size的滾動視圖大小的內容底部設置爲100(我認爲默認值應該是0)。此圖片顯示我在哪裏找到此屬性: enter image description here