Browse Source

refreshing 状态视觉bug修复

解决问题可以参照
http://stackoverflow.com/questions/5466097/section-headers-in-uitablevie
w-when-inset-of-tableview-is-changed 。下拉控件在refreshing 状态,由于 contentInset
的改变,会影响section header 的显示。
tuyou 10 years ago
parent
commit
b371195842
1 changed files with 11 additions and 0 deletions
  1. 11 0
      MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeader.m

+ 11 - 0
MJRefreshExample/MJRefreshExample/MJRefresh/MJRefreshHeader.m

@@ -185,6 +185,17 @@ - (void)adjustStateWithContentOffset
         _scrollViewOriginalInset = _scrollView.contentInset;
     }
     
+    // 在刷新的 refreshing 状态,动态设置 content inset
+    if (self.state == MJRefreshHeaderStateRefreshing ) {
+        if(_scrollView.contentOffset.y >= -_scrollViewOriginalInset.top ) {
+            _scrollView.mj_insetT = _scrollViewOriginalInset.top;
+        } else {
+            _scrollView.mj_insetT = MIN(_scrollViewOriginalInset.top + self.mj_h,
+                                        _scrollViewOriginalInset.top - _scrollView.contentOffset.y);
+        }
+        return;
+    }
+    
     // 当前的contentOffset
     CGFloat offsetY = _scrollView.mj_offsetY;
     // 头部控件刚好出现的offsetY