【技術實現(xiàn)步驟摘要】
本專利技術的實施方式涉及計算機技術與軟件開發(fā)領域,更具體地,本專利技術的實施方式涉及一種基于iOS系統(tǒng)中UITableView實現(xiàn)無限循環(huán)滾動選擇的方法。
技術介紹
隨著互聯(lián)網(wǎng)和移動應用技術的高速發(fā)展,智能手機和移動應用對于人們的生活產(chǎn)生了深遠的影響,涉及領域包括瀏覽互聯(lián)網(wǎng)、交通、房產(chǎn)信息、購物、智能家居等等各個方面,可以說,移動應用正在掌控著人們的日常生活。自從蘋果公司2013年推出iOS7系統(tǒng),系統(tǒng)風格扁平化,引起了一陣人機交互風格轉變的潮流,同時伴隨著用戶對交互界面認知的提升,人性化、扁平化、多樣化、動態(tài)可視化、極致平滑的交互日益受到人們青睞。對于iOS系統(tǒng)進行軟件開發(fā)使用UITableView過程中,雖然它提供給開發(fā)者可滾動的列表視圖,但是它不能夠提供循環(huán)滾動功能,當對于待選擇對象數(shù)據(jù)量比較龐大時,有時需要實現(xiàn)一個能夠滿足用戶滑動到底部時能夠快速選擇頂部cell對象,由于原生的TableView不能循環(huán)滾動,所以只有手動的重新滑動到頂部,這大大降低了用戶的體驗。無論是最新的iOS9系統(tǒng),還是以前的iOS版本都存在這樣的功能缺陷。
技術實現(xiàn)思路
本專利技術所解決的技術問題是,iOS系統(tǒng)不能提供具有循環(huán)滾動功能的列表視圖,當用戶將列表滑動到底部時只能手動的重新滑動到頂部,大大降低了用戶的體驗。且滾動視圖的滾動速率太快會延緩dataSource的更新加載,太慢影響用戶體驗。由于需要顯示的對象 ...
【技術保護點】
一種基于iOS系統(tǒng)中UITableView實現(xiàn)無限循環(huán)滾動選擇的方法,其特征在于它包括以下步驟:步驟1:先創(chuàng)建一個類型為Plain的UITableView,再創(chuàng)建一個視圖控制器,然后在視圖控制器上加載創(chuàng)建的UITableView,并添加代理UITableViewDataSource、UITableViewDelegate;步驟2:添加兩個NSMutableArray,其中第一個保存需要顯示的原始數(shù)據(jù),第二個為UITableView的數(shù)據(jù)源;步驟3:添加五個全局性的整型變量,記錄整個滾動過程中的數(shù)據(jù)對象數(shù)量的變化及被選中對象的位置變化;步驟4:在viewDidLoad方法中根據(jù)原始數(shù)據(jù)數(shù)量設置UITableView的數(shù)據(jù)源,初始化步驟3中的所有變量;步驟5:設置UITableView的滑動減速速率,關閉兩端彈性效果,并且設置其dataSource;步驟6:在視圖控制器中重寫scrollViewDidEndDragging:willDecelerate:和scrollViewDidEndDecelerating:方法,更新記錄滾動位置信息的變量的值;步驟7:根據(jù)步驟6中相關變量的值的變化, ...
【技術特征摘要】
1.一種基于iOS系統(tǒng)中UITableView實現(xiàn)無限循環(huán)滾動選擇的方法,其特征
在于它包括以下步驟:
步驟1:先創(chuàng)建一個類型為Plain的UITableView,再創(chuàng)建一個視圖控
制器,然后在視圖控制器上加載創(chuàng)建的UITableView,并添加代理
UITableViewDataSource、UITableViewDelegate;
步驟2:添加兩個NSMutableArray,其中第一個保存需要顯示的原始
數(shù)據(jù),第二個為UITableView的數(shù)據(jù)源;
步驟3:添加五個全局性的整型變量,記錄整個滾動過程中的數(shù)據(jù)對
象數(shù)量的變化及被選中對象的位置變化;
步驟4:在viewDidLoad方法中根據(jù)原始數(shù)據(jù)數(shù)量設置UITableView的
數(shù)據(jù)源,初始化步驟3中的所有變量;
步驟5:設置UITableView的滑動減速速率,關閉兩端彈性效果,并且
設置其dataSource;
步驟6:在視圖控制器中重寫scrollViewDidEndDragging:
willDecelerate:和scrollViewDidEndDecelerating:方法,更新記錄滾動位置
信息的變量的值;
步驟7:根據(jù)步驟6中相關變量的值的變化,更新UITableView的數(shù)據(jù)
源,刷新UI界面,即可完成使用UITableView實現(xiàn)無限循環(huán)滾動選擇功能。
2.根據(jù)權利要求1所述的基于iOS系統(tǒng)中UITableView實現(xiàn)無限循環(huán)滾動選
擇的方法,其特征在于步驟2中所述兩個NSMutableArray用NSArray替代。
3.根據(jù)權利要求1所述的基于iOS系統(tǒng)中UITableView實現(xiàn)無限循環(huán)滾動選
擇的方法,其特征在于步驟3所述五個全局性的整型變量是具備全局修改
讀取特性的變量中的至少一種。
4.根據(jù)權利要求1所述的基于iOS系統(tǒng)中UITableView實現(xiàn)無限循環(huán)滾動選
擇的方法,其特征在于所述步驟4和步驟5的具體步驟為:
(1)初始化allDataArray、dataSourceArray、allDataArrayCount;
(2)判斷allDataArrayCount,若小于99,則通過方法addObjectsFromArray:
重復加載allDataArray中的數(shù)據(jù),更新allDataArrayCount的值直到其
大于99;
(3)設置defaultIndex為中間位置即49,selectedObjectAtAllDataArrayIndex
為2,dataSourceArrayCount為99,通過方法setContentOffset:設置
tableView的offest為(0,60*abs(defaultIndex-2));
(4)調(diào)用updateTableViewDatasource方法,更新tableView的數(shù)據(jù)源
dataSourceArray;
(5)設置tableView的bounces為NO,decelerationRate為0.3,delegate和
dataSource為self,將tableView加載到viewController上。
5.根據(jù)權利要求1所述的基于iOS系統(tǒng)中UITableView實現(xiàn)無限循環(huán)滾動選
擇的方法,其特征在于步驟6所述scrollViewDidEndDragging:
willDecelerate:方法的實現(xiàn)步驟為:
(1)當decelerate為NO時,判斷scrollView.contentOffset.y%60是否大于
30,若大于則設置scrollView.contentOffset的值為(0,
((scrollView.contentOffset.y)/60+1)*60),否則設置為(0,
((scrollView.contentOffset.y)/60)*60;
(2)更新currentIndex的值為scrollView.contentOffset.y/60+2;
(3)根據(jù)currentIndex與defaultIndex的值得到tableView滾動了多少行,
新增一個int型臨時變量newSelectedObjectIndex,其值為
\tselectedObjectAtAllDataArrayIndex+(currentIndex-defaultIndex);當
newSelectedObjectIndex大于了原始數(shù)據(jù)的元素個數(shù)
allDataArrayCount–1時,更新selectedObjectAtAllDataArrayIndex的
值為newSelectedObjectIndex–allDataArrayCount,如果不大于而且
newSelectedObjectIndex小于0,那么
selectedObjectAtAllDataArrayIndex值為allDataArrayCount+
newSelectedObjectIndex,否則值為newSelectedObjectIndex;
(4)調(diào)用方法updateTableViewDatasource和updateTableView,更新
t...
【專利技術屬性】
技術研發(fā)人員:王斌,
申請(專利權)人:四川長虹電器股份有限公司,
類型:發(fā)明
國別省市:四川;51
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。