// 代码地址: https://github.com/CoderMJLee/MJRefresh // 代码地址: http://code4app.com/ios/%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E4%B8%8B%E6%8B%89%E4%B8%8A%E6%8B%89%E5%88%B7%E6%96%B0/52326ce26803fabc46000000 // UIScrollView+Extension.m // MJRefreshExample // // Created by MJ Lee on 14-5-28. // Copyright (c) 2014年 小码哥. All rights reserved. // #import "UIScrollView+MJExtension.h" #import #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunguarded-availability-new" @implementation UIScrollView (MJExtension) static BOOL respondsToAdjustedContentInset_; + (void)initialize { static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ respondsToAdjustedContentInset_ = [self respondsToSelector:@selector(adjustedContentInset)]; }); } - (UIEdgeInsets)mj_inset { #ifdef __IPHONE_11_0 if (respondsToAdjustedContentInset_) { return self.adjustedContentInset; } #endif return self.contentInset; } - (void)setMj_insetT:(CGFloat)mj_insetT { UIEdgeInsets inset = self.contentInset; inset.top = mj_insetT; #ifdef __IPHONE_11_0 if (respondsToAdjustedContentInset_) { inset.top -= (self.adjustedContentInset.top - self.contentInset.top); } #endif self.contentInset = inset; } - (CGFloat)mj_insetT { return self.mj_inset.top; } - (void)setMj_insetB:(CGFloat)mj_insetB { UIEdgeInsets inset = self.contentInset; inset.bottom = mj_insetB; #ifdef __IPHONE_11_0 if (respondsToAdjustedContentInset_) { inset.bottom -= (self.adjustedContentInset.bottom - self.contentInset.bottom); } #endif self.contentInset = inset; } - (CGFloat)mj_insetB { return self.mj_inset.bottom; } - (void)setMj_insetL:(CGFloat)mj_insetL { UIEdgeInsets inset = self.contentInset; inset.left = mj_insetL; #ifdef __IPHONE_11_0 if (respondsToAdjustedContentInset_) { inset.left -= (self.adjustedContentInset.left - self.contentInset.left); } #endif self.contentInset = inset; } - (CGFloat)mj_insetL { return self.mj_inset.left; } - (void)setMj_insetR:(CGFloat)mj_insetR { UIEdgeInsets inset = self.contentInset; inset.right = mj_insetR; #ifdef __IPHONE_11_0 if (respondsToAdjustedContentInset_) { inset.right -= (self.adjustedContentInset.right - self.contentInset.right); } #endif self.contentInset = inset; } - (CGFloat)mj_insetR { return self.mj_inset.right; } - (void)setMj_offsetX:(CGFloat)mj_offsetX { CGPoint offset = self.contentOffset; offset.x = mj_offsetX; self.contentOffset = offset; } - (CGFloat)mj_offsetX { return self.contentOffset.x; } - (void)setMj_offsetY:(CGFloat)mj_offsetY { CGPoint offset = self.contentOffset; offset.y = mj_offsetY; self.contentOffset = offset; } - (CGFloat)mj_offsetY { return self.contentOffset.y; } - (void)setMj_contentW:(CGFloat)mj_contentW { CGSize size = self.contentSize; size.width = mj_contentW; self.contentSize = size; } - (CGFloat)mj_contentW { return self.contentSize.width; } - (void)setMj_contentH:(CGFloat)mj_contentH { CGSize size = self.contentSize; size.height = mj_contentH; self.contentSize = size; } - (CGFloat)mj_contentH { return self.contentSize.height; } @end #pragma clang diagnostic pop