// // UIScrollView+VTMagic.m // VTMagic // // Created by tianzhuo on 15/7/9. // Copyright (c) 2015年 tianzhuo. All rights reserved. // #import "UIScrollView+VTMagic.h" @implementation UIScrollView (VTMagic) - (BOOL)vtm_isNeedDisplayWithFrame:(CGRect)frame preloading:(BOOL)preloading { CGRect visibleRect = (CGRect){CGPointMake(self.contentOffset.x, 0), self.frame.size}; CGRect intersectRegion = CGRectIntersection(frame, visibleRect); BOOL isOnScreen = !CGRectIsNull(intersectRegion) || !CGRectIsEmpty(intersectRegion); if (!preloading) { BOOL isNotBorder = 0 != (int)self.contentOffset.x%(int)self.frame.size.width; return isOnScreen && (isNotBorder ?: 0 != intersectRegion.size.width); } return isOnScreen; } - (BOOL)vtm_isItemNeedDisplayWithFrame:(CGRect)frame { frame.size.width *= 2; BOOL isOnScreen = [self vtm_isNeedDisplayWithFrame:frame preloading:YES]; if (isOnScreen) { return YES; } frame.size.width *= 0.5; frame.origin.x -= frame.size.width; isOnScreen = [self vtm_isNeedDisplayWithFrame:frame preloading:YES]; return isOnScreen; } @end