-
改變contentInset值會有一個不可預(yù)料的副作用解取,尤其是當(dāng)你顯示滾動條的時候。當(dāng)用戶拖拽內(nèi)容到頂部或者底部蜈膨,滾動條會越過任何被定義在contentInset的區(qū)域之內(nèi)的范偉董朝,例如navigation controller和toolbar。
- 想要修正這個問題饼暑,你必須設(shè)置scrollIndicatorInsets屬性。設(shè)置vertical inset值限制了垂直滾動條,避免了越區(qū)域顯示滾動條的問題弓叛。
滾動到特定的Offset:滾動到特定的top-left位置可以通過兩種方式完成: - setContentOffset:animated:方法彰居,滾動內(nèi)容到特定的content offset。
也可以通過滾動到一個固定的可見的矩形區(qū)域來完成撰筷。這個在一個app需要顯示一個contorl陈惰,恰好這個control在實現(xiàn)之外的時候格外有用。 - scrollRectToVisible:animated:方法滾動到特殊的矩形區(qū)域闭专,以確保區(qū)域在可視范圍之內(nèi)。
- 想要修正這個問題饼暑,你必須設(shè)置scrollIndicatorInsets屬性。設(shè)置vertical inset值限制了垂直滾動條,避免了越區(qū)域顯示滾動條的問題弓叛。
如何在scrollView內(nèi)容不夠的時候也可以進(jìn)行拉伸:通過設(shè)置彈跳屬性旧烧。Bouncing只有在bounces屬性為YES時(默認(rèn)值)才可以使用影钉。如果bounces為NO,則alwasyBounceVertical和alwaysBounceHorizontal屬性不可用掘剪。如果bounces為YES平委,即便contentSize比scrollView bounds小也可以彈跳。
為了支持zooming夺谁,你必須設(shè)置scrollView的delegate廉赔,且要實現(xiàn)UIScrollViewDelegate協(xié)議。大多數(shù)情況匾鸥,這個delegate是scrollView的controller的class蜡塌。那個delegate class必須實現(xiàn)viewForZoomingInScrollView方法并且返回要zoom的view。
為了控制用戶可以zoom的范圍勿负,你需要setminimumZoomScale值和maximumZoomScale值馏艾,他們初始都被設(shè)置為1.0.
如何確保內(nèi)容在zoom時是銳利的:如果zoom的內(nèi)容是實時的,并且需要在zoom時是銳利的奴愉,那么你的app的類需要用Core Animation來繪制琅摩。Class需要改變Core Animation的class,就像UIView的class layer對于CATtiledLayer并且用CA的drawLayer:inContext:方法來繪制锭硼。
請注意房资,這種繪畫方法有一個重要的限制,UIKit繪制方法不是線程安全的檀头,并且drawLayer:inRect:會在后臺線程回調(diào)轰异,因此你必須使用CoreGraphics繪制函數(shù)替代UIKit 繪制函數(shù)。
想使用Paging Mode暑始,你需要設(shè)置pagingMode屬性為YES溉浙。-
配置Paging Scroll View的子view:有兩個方法:
- 如果content很小,你應(yīng)當(dāng)一次性draw全部內(nèi)容蒋荚,在一個單獨的view上就是scroll view的contentSize戳稽。這個很容易實現(xiàn),但是當(dāng)處理很大的content 區(qū)域時效率很低,或者page content需要時間去繪制惊奇;
- 當(dāng)你的app需要顯示很多pages或者繪制page內(nèi)容會很耗時互躬,你的app應(yīng)當(dāng)使用多頁面去繪制content,每一個頁面屬于一個page颂郎。PageContrl就是使用這種方法來實現(xiàn)的吼渡。可以采用三個view實例乓序,一個顯示當(dāng)前page寺酪,一個顯示之前的page,一個顯示之后的page替劈。這些views在滾動過程中被復(fù)用寄雀。
如何來判斷page需要重新繪制,scrollView需要一個delegate實現(xiàn)scrollViewDidScroll方法陨献。這個實現(xiàn)應(yīng)當(dāng)去記錄contentOffset盒犹,并且當(dāng)它傳中點值(寬度的中點值),view應(yīng)當(dāng)進(jìn)行重新渲染眨业,將馬上要消失的view移動到要渲染下一張page或者上一張page的地方去急膀。
NSScrollView官方文檔
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洋机,“玉大人坠宴,你說我怎么就攤上這事”疗欤” “怎么了喜鼓?”我有些...
- 文/不壞的土叔 我叫張陵,是天一觀的道長衔肢。 經(jīng)常有香客問我庄岖,道長,這世上最難降的妖魔是什么角骤? 我笑而不...
- 正文 為了忘掉前任隅忿,我火速辦了婚禮心剥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘背桐。我一直安慰自己优烧,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布链峭。 她就那樣靜靜地躺著畦娄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪弊仪。 梳的紋絲不亂的頭發(fā)上熙卡,一...
- 文/蒼蘭香墨 我猛地睜開眼禾嫉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蚊丐?” 一聲冷哼從身側(cè)響起熙参,我...
- 正文 年R本政府宣布滞磺,位于F島的核電站升薯,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏击困。R本人自食惡果不足惜涎劈,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧责语,春花似錦炮障、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至白筹,卻和暖如春智末,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背徒河。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件植影、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
- Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
- (銷售三術(shù)之“異”) 如何設(shè)置障礙裳擎?如何渾水摸魚?這就是銷售之術(shù)的第二術(shù)思币,曰“異”鹿响。 異,就是“差異化”谷饿。通過對比...
- 第一種:終端生成 一惶我、準(zhǔn)備: 1.在終端中輸入:open /usr/bin/codesign 看是否codesig...