我試圖實現一個自定義選項卡欄,它是可滾動的並且在每個選項卡欄項都有分頁。爲此,我使用委託scrollViewWillEndDragging:withVelocity:targetContentOffset:它完美地解決了一個問題。scrollViewWillEndDragging:withVelocity:targetContentOffset:不工作在UISCrollView的邊緣
我分頁的工作原理是,如果contentOffset是正確的項目接近的方式,它的targetContentOffset變爲該項目的偏移量。左側是同樣的東西。
問題是,無論何時我在第一個項目的左半部分和最後一個的右側部分(滾動視圖水平工作),它應該轉到ContentOffset 0和最右邊項目的內容偏移量(減去屏幕上的那些),但它不是。
我與調試器檢查和targetContentOffset-> x是確實0(在第一種情況下 - 左最左邊項目的)。所以問題是UIScrollView不在那裏滾動。我迷路了。
這是我實現的委託:圖解釋什麼是我想要做的
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView
withVelocity:(CGPoint)velocity
targetContentOffset:(inout CGPoint *)targetContentOffset{
NSInteger index = lrintf(targetContentOffset->x/self.tabWidth);
targetContentOffset->x = index * self.tabWidth;
}
這裏。
|-------|-------|-------|-------|-------|-------|-------|
| | | | | | | |
| | | | | | | |
|_______|_______|_______|_______|_______|_______|_______|
|_______________________________________|
where it is and i scroll it to the left
<----|
|_______________________________________|
where it would stop
|_______________________________________|
where i want it to stop
我也遇到過這個問題。你有可能發佈Apple Bug ID號碼或更好的鏈接到OpenRadar條目 - 幫助我自己和其他人發佈重複的錯誤報告? (這是衆所周知的,蘋果公司根據他們收到的報告數量優先處理錯誤。) – Calrion
當然。它是10255505的副本,但它似乎並不存在於OpenRadar中。無論如何,它現在似乎已經關閉,但我不知道他們是否會發布修復程序。 – dvieira