Merge pull request #117 from gfzabarino/master

Scroll view started with wrong content offset on some occasions
This commit is contained in:
Maz Jaleel 2016-01-30 20:14:56 +09:00
commit a1c57da65f
5 changed files with 9 additions and 9 deletions

View File

@ -11,6 +11,6 @@
@interface UIScrollView (Helpers)
- (void)tly_setInsets:(UIEdgeInsets)contentInsets preserveOffset:(BOOL)preserveOffset;
- (void)tly_setInsets:(UIEdgeInsets)contentInsets;
@end

View File

@ -11,9 +11,9 @@
@implementation UIScrollView (Helpers)
// Modify contentInset and scrollIndicatorInsets
- (void)tly_setInsets:(UIEdgeInsets)contentInsets preserveOffset:(BOOL)preserveOffset
- (void)tly_setInsets:(UIEdgeInsets)contentInsets
{
if (preserveOffset && contentInsets.top != self.contentInset.top)
if (!self.isDragging && !self.isDecelerating && contentInsets.top != self.contentInset.top)
{
CGFloat offsetDelta = contentInsets.top - self.contentInset.top;

View File

@ -17,6 +17,6 @@
@property (nonatomic, weak) UIScrollView *scrollView;
@property (nonatomic, weak) TLYShyViewController *parent;
- (CGFloat)updateLayoutIfNeeded:(BOOL)intelligently;
- (CGFloat)updateLayoutIfNeeded;
@end

View File

@ -14,10 +14,10 @@
- (void)offsetCenterBy:(CGPoint)deltaPoint
{
[self updateLayoutIfNeeded:NO];
[self updateLayoutIfNeeded];
}
- (CGFloat)updateLayoutIfNeeded:(BOOL)intelligently
- (CGFloat)updateLayoutIfNeeded
{
if (self.scrollView.contentSize.height < FLT_EPSILON
&& ([self.scrollView isKindOfClass:[UITableView class]]
@ -35,7 +35,7 @@
if (normalizedY > -FLT_EPSILON && !UIEdgeInsetsEqualToEdgeInsets(insets, self.scrollView.contentInset))
{
CGFloat delta = insets.top - self.scrollView.contentInset.top;
[self.scrollView tly_setInsets:insets preserveOffset:intelligently];
[self.scrollView tly_setInsets:insets];
return delta;
}
@ -46,7 +46,7 @@
frame = UIEdgeInsetsInsetRect(frame, insets);
self.scrollView.frame = frame;
return [self updateLayoutIfNeeded:YES];
return [self updateLayoutIfNeeded];
}
return 0.f;

View File

@ -394,7 +394,7 @@ static void * const kTLYShyNavBarManagerKVOContext = (void*)&kTLYShyNavBarManage
- (void)layoutViews
{
if (fabs([self.scrollViewController updateLayoutIfNeeded:YES]) > FLT_EPSILON)
if (fabs([self.scrollViewController updateLayoutIfNeeded]) > FLT_EPSILON)
{
[self.navBarController expand];
[self.extensionViewContainer.superview bringSubviewToFront:self.extensionViewContainer];