UIScrollView 中一些不常用的屬性

2021-07-04 11:39:19 字數 2213 閱讀 1995

今天來說關於uiscrollview的一些屬性, 雖然不是特別常用但是有時候會有驚奇作用的幾個屬性。

有些關於鍵盤收回的事件處理會寫在uiscrollview的**方法中,將要開始拖拽其時觸發: -(void)scrollviewwillbegindragging:(uiscrollview *)scrollview 

其實更簡單的方法是通過設定uiscrollview的屬性在其滑動時自動** 

scrollview.keyboarddismissmode = uiscrollviewkeyboarddismissmodeondrag; 

下面就來看看這個屬性.

uiscrollview *scrollview = [[uiscrollview alloc]initwithframe:cgrectmake(0, 0, 375, 667)];

scrollview.backgroundcolor = [uicolor lightgraycolor];

scrollview.contentsize = cgsizemake(375, 3000);

[self.view addsubview:scrollview];

uitextfield *tf = [[uitextfield alloc]initwithframe:cgrectmake(0, 200, 100, 100)];

tf.backgroundcolor = [uicolor greencolor];

[scrollview addsubview:tf];

// uiscrollviewkeyboarddismissmode 列舉

scrollview.keyboarddismissmode = uiscrollviewkeyboarddismissmodeondrag;

關於uiscrollviewkeyboarddismissmode列舉值:

uiscrollviewkeyboarddismissmodenone, 

uiscrollviewkeyboarddismissmodeondrag, // dismisses the keyboard when a drag begins 

uiscrollviewkeyboarddismissmodeinteractive, // the keyboard follows the dragging touch off screen, and may be pulled upward again to cancel the dismiss

第乙個是預設值, none. 

第二個, 當 uiscrollview 開始拖拽時, 便會收回鍵盤. 一般這個用的比較多 

第三個, 當uiscrollview 拉至頂端後再次下拉, 便會收回鍵盤. 這個時機就類似於下拉重新整理的操作時機.

首先分析下當你的手指touch乙個 uiscrollview開始,scrollview開始乙個timer,如果: 

1.150ms內如果你的手指沒有任何動作,訊息就會傳給subview。 

2.150ms內手指有明顯的滑動(乙個swipe動作),scrollview就會滾動,訊息不會傳給subview。 

3.150ms內手指沒有滑動,scrollview將訊息傳給subview,但是之後手指開始滑動,scrollview傳送touchescancelled訊息給subview,然後開始滾動。

@property(nonatomic) bool delayscontenttouches; // default is yes. if no, we immediately call -touchesshouldbegin:withevent:incontentview:. this has no effect on presses

預設是yes,使用上面的150ms的timer,如果設定為no,touch事件立即傳遞給subview,不會有150ms的等待。

@property(nonatomic) bool cancancelcontenttouches; // default is yes. if no, then once we start tracking, we don』t try to drag if the touch moves. this has no effect on presses

預設為yes,如果設定為no,這訊息一旦傳遞給subview,這scroll事件不會再發生。

PB中一些技巧

取資料視窗中可列新的表名。string ls table ls table dw 1.describe datawindow.updatetable.table 22.取資料視窗物件中列的名稱及型別 string ls cols,ls types intli count,i li count int...

php中一些知識

file 的路徑是當前 所在檔案 dirname dirname file 得到的是檔案上一層目錄名 dirname file 得到的是檔案所在層目錄名 require其實是乙個直譯器解釋的過程,比如當我們在乙個檔案中require另乙個檔案的時候,其實是先解釋另乙個檔案。php中的檔案a的過程中假...

PB中一些技巧

取資料視窗中可列新的表名。string ls table ls table dw 1.describe datawindow.updatetable.table 22.取資料視窗物件中列的名稱及型別 string ls cols,ls types intli count,i li count int...