我想要實現一個ipad視圖,在這裏我解析一個xml文件並將這些條目放在一個「無盡的」ipad視圖上,所以你必須左右滑動。有人能告訴我,我可以如何實現這一點?我必須使用哪種類型的視圖?無盡的iPad刷卡?
在此先感謝
問候
我想要實現一個ipad視圖,在這裏我解析一個xml文件並將這些條目放在一個「無盡的」ipad視圖上,所以你必須左右滑動。有人能告訴我,我可以如何實現這一點?我必須使用哪種類型的視圖?無盡的iPad刷卡?
在此先感謝
問候
您使用的UIScrollView啓用了分頁。要點是將myscrollView.contentSize設置爲所有頁面的總寬度,但是在滾動正在發生時以恰好時間爲基礎創建單獨頁面(請參閱UIScrollViewDelegate文檔);換句話說,當你需要的只有三個視圖時,你不希望實際上有幾十個或更多視圖使用內存 - 當前視圖以及上一個視圖和下一個視圖。從蘋果此示例代碼應該讓你開始: http://developer.apple.com/iphone/library/samplecode/Scrolling/Introduction/Intro.html
使用一個真正的大contentSize
是不是要走的路。 contentSize
仍然使用固定的數據類型,如果你滾動的時間足夠長,它們會溢出,充其量,你的繪圖將會失去作用。最糟糕的情況是,你的應用程序崩潰。
你想要的是通過使用窗口給人無限滾動的印象。我將用一個簡單的1-D示例來說明它是如何工作的,但是您可以輕鬆將其擴展爲2-D。
比方說,您有3個條目,其中每個條目填充UIScrollView
。向右滾動,它會出現被安排是這樣的:
A B C A B C A B C ...
在內部,你會喜歡這個安排他們:
C A B C
因爲當一個是可見的,你可以看到部分如果您向左滑動,則滑動到右側或B的一部分。
您的UIScrollView
的contentOffset
是您的櫥窗。雖然contentSize
包含所有四個實體(C A B C
)的寬度,但在內部您將限制爲實際寬度的75%。當用戶向左和向右滾動時,您調整contentOffset
,使其永遠不會爲負數或超過contentSize.width
的75%。這是您的代理內部完成,在scrollViewDidScroll:
- (void) scrollViewDidScroll:(UIScrollView *)scrollView
{
while (scrollView.contentOffset.x < 0)
scrollView.contentOffset.x += constrainedContentSize.width;
while (scrollView.contentOffset.x > constrainedContentSize.width)
scrollView.contentOffset.x -= constrainedContentSize.width;
// ...
}
注意,這裏假設一個實例變量constrainedContentSize
,可能在控制器,你UIScrollView
是裏面的觀點,並認爲該控制器是你UIScrollView
委託。
這將比不斷髮布和重新創建視圖效率更高。