• 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>

    基于iOS系統(tǒng)中UITableView實現(xiàn)無限循環(huán)滾動選擇的方法技術方案

    技術編號:14976832 閱讀:72 留言:0更新日期:2017-04-03 10:03
    本發(fā)明專利技術公開了一種基于iOS系統(tǒng)中UITableView實現(xiàn)無限循環(huán)滾動選擇的方法,創(chuàng)建UITableView和視圖控制器并進行加載,添加兩個代理;添加兩個NSMutableArray,分別保存需要顯示的原始數(shù)據(jù)和UITableView的數(shù)據(jù)源;添加整型變量記錄滾動過程中的數(shù)據(jù)對象數(shù)量的變化及被選中對象的位置變化;設置UITableView數(shù)據(jù)源,初始化所有變量;設置滑動減速速率,關閉兩端彈性效果,設置其dataSource;在視圖控制器中重寫相應的方法,更新記錄滾動位置信息的變量的值,更新UITableView數(shù)據(jù)源,刷新UI界面即可。本發(fā)明專利技術實現(xiàn)了UITableView列表視圖的循環(huán)滾動功能。

    【技術實現(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的更新加載,太慢影響用戶體驗。由于需要顯示的對象數(shù)量不同,UITableView的dataSource的數(shù)據(jù)個數(shù)選擇也有問題,個數(shù)選擇太多會增加應用內(nèi)存負擔,而太少會導致應用卡頓。為了實現(xiàn)循環(huán)滾動,需要記錄當前滾動結束后選中的位置,在滾動過程中數(shù)據(jù)源的更新要求迅速而準確,特別是數(shù)據(jù)頭尾交接部分,更新不及時會出現(xiàn)應用界面卡頓或顯示錯誤。為解決上述的技術問題,本專利技術的一種實施方式采用以下技術方案:一種基于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)滾動選擇功能。上述基于iOS系統(tǒng)中UITableView實現(xiàn)無限循環(huán)滾動選擇的方法中,步驟2中所述兩個NSMutableArray用NSArray替代。上述基于iOS系統(tǒng)中UITableView實現(xiàn)無限循環(huán)滾動選擇的方法中,步驟3所述五個全局性的整型變量是具備全局修改讀取特性的變量中的至少一種。上述基于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上。上述基于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,其值為selectedObjectAtAllDataArrayIndex+(currentIndex-defaultIndex);當newSelectedObjectIndex大于了原始數(shù)據(jù)的元素個數(shù)allDataArrayCount–1時,更新selectedObjectAtAllDataArrayIndex的值為newSelectedObjectIndex–allDataArrayCount,如果不大于而且newSelectedObjectIndex小于0,那么selectedObjectAtAllDataArrayIndex值為allDataArrayCount+newSelectedOb本文檔來自技高網(wǎng)...

    【技術保護點】
    一種基于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)滾動選擇功能。...

    【技術特征摘要】
    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

    網(wǎng)友詢問留言 已有0條評論
    • 還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 亚洲成av人片在线观看无码不卡| 国产成人无码a区在线视频| 18禁超污无遮挡无码免费网站| 伊人久久精品无码av一区| 亚洲Av无码一区二区二三区| 色欲AV无码一区二区三区| 精品无码av一区二区三区| 国产精品无码久久av不卡| 无码人妻精品一区二区三区66 | 国产精品视频一区二区三区无码| 亚洲av无码国产综合专区| 亚洲免费日韩无码系列| 精品人妻无码一区二区色欲产成人| 精品无码久久久久久久久久 | 无码人妻精品一区二区三区蜜桃 | 亚洲中久无码永久在线观看同 | 无码人妻AⅤ一区二区三区水密桃 无码欧精品亚洲日韩一区夜夜嗨 无码免费又爽又高潮喷水的视频 无码毛片一区二区三区中文字幕 无码毛片一区二区三区视频免费播放 | 日韩精品无码一区二区三区| 精品人妻无码专区在中文字幕| 久久精品中文字幕无码绿巨人| 少妇无码太爽了不卡视频在线看| 精品无码久久久久久午夜| 中国无码人妻丰满熟妇啪啪软件 | 亚洲av无码国产精品夜色午夜 | 黄色成人网站免费无码av| 日韩人妻无码精品久久免费一| 暴力强奷在线播放无码| 国产午夜无码专区喷水| 无码专区国产无套粉嫩白浆内射| 久久久久久亚洲精品无码| 亚洲成av人无码亚洲成av人 | 激情无码人妻又粗又大中国人 | 亚洲爆乳大丰满无码专区| 亚洲av无码一区二区三区观看| 久久亚洲精品无码| 精品无码av一区二区三区| 在线看片无码永久免费视频| 亚洲AV综合色区无码二区爱AV| AV无码精品一区二区三区| 久久Av无码精品人妻系列| 亚洲午夜无码久久久久小说|