iOS UIScrollView 下拉重新整理

2021-07-11 08:01:54 字數 2517 閱讀 2133

ios 使用uiscrollview 實現下拉重新整理時 一般是通過 在uiscrollview的contentoffset和contentinset來實現的,mjrefresh在處理開始重新整理事件時使用的是動畫來解決的,這裡也可以不用動畫來解決 mjrefresh為

// 根據狀態做事情

if (state == mjrefreshstateidle) completion:^(bool finished) ];

}

不使用動畫又分為兩種情況:**如下 第一種:

// 增加滾動區域

cgfloat top = self.scrollvieworiginalinset.top + self.zy_h;

nslog(@"scrollvieworiginalinset %f", self.scrollvieworiginalinset.top);

nslog(@"self.zy_h %f", self.zy_h);

nslog(@"top %f", top);

// cgpoint offset = self.scrollview.contentoffset;

uiedgeinsets inset = self.scrollview.contentinset;

inset.top = top;

self.scrollview.contentinset = inset;

// self.scrollview.contentinset

nslog(@"self.scrollview.contentinset %@", nsstringfromuiedgeinsets(self.scrollview.contentinset));

cgpoint offset = self.scrollview.contentoffset;

offset.y = - top;

nslog(@"offset %f", offset.y);

self.scrollview.contentoffset = offset;

// self.scrollview.contentoffset

nslog(@"self.scrollview.contentoffset %@", nsstringfromcgpoint(self.scrollview.contentoffset));

這種可以看到 效果很不好 uiscrollview先彈回最初狀態然後再回到contentoffset設定的值設定的狀態,這樣的效果根本不能是下拉重新整理效果,使用者會感覺跳來跳去,這個方式直接放棄,之所以說有這個方式,是讓讀者明白 這樣做不可以,當然mjrefresh是這樣做的,但是他用了動畫遮蔽了uiscrollview的回彈過程。

另一種正確的做法為:

// 增加滾動區域

cgfloat top = self.scrollvieworiginalinset.top + self.zy_h;

nslog(@"scrollvieworiginalinset %f", self.scrollvieworiginalinset.top);

nslog(@"self.zy_h %f", self.zy_h);

nslog(@"top %f", top);

cgpoint offset = self.scrollview.contentoffset;

uiedgeinsets inset = self.scrollview.contentinset;

inset.top = top;

self.scrollview.contentinset = inset;

// self.scrollview.contentinset

nslog(@"self.scrollview.contentinset %@", nsstringfromuiedgeinsets(self.scrollview.contentinset));

// cgpoint offset = self.scrollview.contentoffset;

// offset.y = - top;

//

// nslog(@"offset %f", offset.y);

self.scrollview.contentoffset = offset;

// self.scrollview.contentoffset

nslog(@"self.scrollview.contentoffset %@", nsstringfromcgpoint(self.scrollview.contentoffset));

這個做法自己感覺不錯,使用了uiscrollview自己的**動畫,與下拉效果一氣呵成 使用者會感覺比較自然。當然mjrefresh裡面使用的動畫使用者也不會太在意的。畢竟只是乙個回彈的效果問題。這次標記一下。不明白的可以聯絡我。

IOS UIScrollview約束問題

詳細就不多解釋了,說說在查詢完資料後所獲得的結論吧 1.scrollview的leading,top,trailing,bottom所對應的不是scrollview的bounds,而是scrollview的content size 2.scrollview在多語言切換的時候,leading不會根據語...

iOS uiscrollview 自動迴圈滾動

自動迴圈滾動scrollview和 uipagecontrol 自己的資源 我的是5張 另外設定第一張為 最後一張 最後一張是第一張 把自己的五張 放在這兩張圖之間共七張 設定scrollview 的偏移量為一張的偏移量 nstimer scheduledtimerwithtimeinterval ...

iOS UIScrollView的學習(二)

1 接著上一次的說 這次講一下uiscrollview的縮放功能。2 當使用者在uiscrollview身上使用捏合手勢時,uiscrollview會給 傳送一條訊息,詢問 究竟要縮放自己內部的哪乙個子控制項 哪一塊內容 當使用者在uiscrollview身上使用捏合手勢時,uiscrollview...