12345678910111213141516171819202122232425262728293031323334353637 |
- //
- // 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
|