iOS UIScrollView 浣犲彲鑳戒笉鐭ラ亾鐨勫鎶€娣阀

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS UIScrollView 浣犲彲鑳戒笉鐭ラ亾鐨勫鎶€娣阀相关的知识,希望对你有一定的参考价值。

鏍囩锛?/p>

iOS 鐨?UIScrollView 鍙互璇存槸鍗佸垎寮哄ぇ锛屽阀濡欏湴杩愮敤瀹冨彲浠ュ緱鍒颁竴浜涙剰鎯充笉鍒扮殑鏁堟灉銆傛湰鏂囧皢涓惧嚑涓?ScrollView 涓嶅父瑙佽繍鐢ㄧ殑渚嬪瓙銆?/p>

 

鑷甫淇℃伅搴旂敤

鎶€鏈垎浜? src=

杩欎釜鐣岄潰鏃㈠彲浠ヤ笂涓嬪嵎鍔紝涔熷彲浠ュ乏鍙虫粦鍔ㄦ媺鍑哄彂閫佹椂闂淬€?/p>

 

P.S. 姘旀瀹濆疂浜嗭紝鎴戝仛浜嗕竴缁勭簿缇庣殑 gif锛屼絾鏄ぇ灏忛兘瓒呭嚭绠€涔﹂檺鍒?hellip;..鏃犺锛屽ぇ瀹跺氨鑴戣ˉ涓€涓嬫晥鏋滃惂銆?/p>

 

杩欎釜鏁堟灉澶т綋鐪嬩竴涓嬪氨闈炲父鍍忎竴涓緢澶х殑 ScrollView锛屽彲浠ュ洓涓柟鍚戦兘鑳芥粦鍔ㄣ€備絾鏄?UITableView 鍙兘涓婁笅婊氬姩锛岀‖瑕佷慨鏀归偅灏辨槸澶ф墜鏈紝涓嶆帹鑽愯繖鏍峰仛銆傚洜姝ゆ垜鎯冲埌鐨勬柟娉曟槸鍏堝垱寤轰竴涓?ScrollView锛屽皢鍏?contentSize 璁剧疆涓?TableView 鐨?contentSize锛屽苟灏嗗叾瀹藉害鍐嶈缃ぇ涓€涓儚绱狅紝杩欐牱宸﹀彸鏂瑰悜涔熷彲浠ユ粦鍔ㄤ簡銆傜劧鍚庣洃鍚?ScrollView 鐨勬粴鍔ㄤ簨浠讹紝灏嗗叾 contentOffset.y 缁戝畾鍒?TableView 鐨?contentOffset.y 涓婏紝 閭d箞 contentOffset.x 灏卞彲浠ユ潵璁剧疆姣忎釜 cell 鐨勫唴閮ㄦ晥鏋滀簡銆?/p>

 

涓嬮潰鎴戜滑鐪嬬湅浠g爜锛?/p>

 

鎶€鏈垎浜? src=

 

鍓嶅崐閮ㄥ垎寰堢畝鍗曪紝灏辨槸涓€涓?TableView 鐨勫垵濮嬪寲锛屼笅闈㈡槸鎴戜滑鐨勯噸鐐癸紝鎴戝垱寤轰簡涓€涓?UIScrollView锛岃鍏?frame 涓?TableView 鐨勪竴鑷达紝Inset 涔熼渶瑕佷竴鑷达紝鐒跺悗璁剧疆浠g悊鏉ョ洃鍚粴鍔ㄤ簨浠躲€?/p>

 

閭d箞鏈€鍚庝竴鍙ユ槸浠€涔堟剰鎬濆憿锛?/p>

鍥犱负 ScrollView 浼氭嫤鎴叾涓嬮潰鐨?View 鐨勮Е鎽镐簨浠讹紝杩欐牱鎴戜滑鐨?Cell 灏辨棤娉曡閫変腑浜嗐€傚洜姝ゆ垜浠繀椤昏 ScrollView 鐨?userInteractionEnabled 灞炴€т负 false锛岃繖鏍峰畠灏变笉鍝嶅簲骞舵嫤鎴Е鎽镐簨浠朵簡锛屼絾鏄皝鏉ヨ瀹冩粦鍔ㄥ憿锛熷ソ鍦?iOS 鎶婂畠鍐呴儴鐨勪竴涓?UIPanGestureRecognizer 寮€鏀句簡鍑烘潵锛屾垜浠氨鍙互灏嗗叾瀚佹帴鍒?TableView 鐨勮韩涓婏紝杩欐牱 TableView 灏辨棦鍙互鍝嶅簲鐐瑰嚮锛屼篃鍙互鍝嶅簲婊氬姩浜嗐€?/p>

 

绱ф帴鐫€锛屾垜浠渶瑕佺煡閬?TableView 鐨勫唴瀹规湁澶氬ぇ锛岃繖涓ぇ灏忛渶瑕佽绠楋紝閭d箞浠€涔堟椂鍊欒繖涓ぇ灏忎細琚绠楀畬鍛紵灏辨槸鍦ㄤ笅闈㈣繖涓唬鐞嗘柟娉曡璋冪敤鏃讹細

 

鎶€鏈垎浜? src=

 

鎴戜滑鏇存柊 ScrollView 鐨?contentSize銆?/p>

 

鐒跺悗鎴戜滑鐩戝惉 ScrollView 鐨勬粴鍔ㄤ簨浠讹細

 

鎶€鏈垎浜? src=

 

杩欏氨搴旇寰堢畝鍗曚簡锛屽垎鍒皢 x銆亂 搴旂敤鍒板搷搴旂殑灞炴€у嵆鍙紝y 杞村氨缁?TableView锛岃鍏跺彲浠ヤ笂涓嬪嵎鍔紝x 杞村氨缁欐瘡涓?cell锛岃鍏跺仛鑷繁鐨勫鐞嗐€?/p>

 

鏈€缁堟晥鏋滃涓嬶細锛堜笉鍔ㄥ彸閿柊鏍囩鎵撳紑锛?/p>

 

锛堝洤锛屽浘瓒呰繃浜嗗井淇$殑鏈€澶ч檺鍒?2 MB锛岃创涓嶄簡锛岃澶у鑴戣ˉ鍚?锛?/p>

 

瀹炵幇鍜屼笂闈㈠樊涓嶅锛屽紑澶村0鏄庨儴鍒嗕竴鑷达紝浠g悊鏂规硶濡備笅锛?/p>

 

鎶€鏈垎浜? src=

 

杩欓噷涓轰簡瀹炵幇鍚搁檮鏁堟灉锛屾垜鐢ㄥ埌浜?scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer) 杩欎釜鏂规硶锛屽畠鐨勪綔鐢ㄦ槸閫氱煡浠g悊鐢ㄦ埛宸茬粡鏉惧紑鎵嬫寚锛岀幇鍦ㄨ鍥惧皢浼氫互涓€涓€熷害鍗峰姩鍒颁竴涓洰鏍囦綅缃紝骞朵笖杩欎釜鐩爣浣嶇疆鏄彲浠ョ敤鎸囬拡淇敼鐨勩€傛墍浠ユ垜鍙渶鍒ゆ柇涓€涓嬭鍥惧皢浼氭粴鍔ㄥ埌浠€涔堜綅缃紝濡傛灉瓒呰繃涓€涓复鐣屽€硷紝灏辫瀹冨畬鍏ㄦ粴鍔ㄥ嚭鏉ワ紝鍚﹀垯灏辨粴鍔ㄥ洖鍘汇€?/p>

 


 

鏈枃閫氳繃杩欎袱涓皬渚嬪瓙甯屾湜鑳借捣鍒版姏鐮栧紩鐜夌殑浣滅敤锛屽叾瀹炶澶氭晥鏋滅殑瀹炵幇閮藉彲浠ョ壍鎵埌 ScrollView 鐨勮繍鐢ㄣ€傛渶鍚庤繕鏄帹鑽愬ぇ瀹跺叧娉ㄤ竴涓?WWDC锛屽緢澶?Session 閮藉緢鏈夊惎鍙戞€с€?/p>

 

鍙傝€?Session锛?/p>

WWDC 2014 – Session 235: Advanced Scrollviews and Touch Handling Techniques

WWDC 2013 – Session 217: Exploring Scroll Views on ios 7

WWDC 2012 – Session 223: Enhancing User Experience with Scroll Views

WWDC 2011 – Session 104: Advanced ScrollView Techniques

以上是关于iOS UIScrollView 浣犲彲鑳戒笉鐭ラ亾鐨勫鎶€娣阀的主要内容,如果未能解决你的问题,请参考以下文章

浣犲彲鑳戒笉鐭ラ亾鐨?鏉ebpack浼樺寲绛栫暐

鍦ㄥ伐浣滀腑浣犲彲鑳戒細閬囪鐨勪簨鎯呭搱

浣犱笉鐭ラ亾鐨凣it

浣犱笉鐭ラ亾鐨?Event Loop