Fix for scrollers not updating properly.

[#35 state:resolved]

Reviewed by ross.
This commit is contained in:
Francisco Ryan Tolmasky I
2008-10-04 16:20:45 -07:00
parent 9da107fc45
commit ac4faf3a4c
+31 -9
View File
@@ -235,7 +235,7 @@ import "CPScroller.j"
var value = [_verticalScroller floatValue],
contentBounds = [_contentView bounds];
contentBounds.origin.y = value * (_CGRectGetHeight([[_contentView documentView] frame]) - _CGRectGetHeight(contentBounds));
contentBounds.origin.y = value * (_CGRectGetHeight([documentView frame]) - _CGRectGetHeight(contentBounds));
[_contentView scrollToPoint:contentBounds.origin];
}
@@ -246,7 +246,7 @@ import "CPScroller.j"
var value = [_horizontalScroller floatValue],
contentBounds = [_contentView bounds];
contentBounds.origin.x = value * (_CGRectGetWidth([[_contentView documentView] frame]) - _CGRectGetWidth(contentBounds));
contentBounds.origin.x = value * (_CGRectGetWidth([documentView frame]) - _CGRectGetWidth(contentBounds));
[_contentView scrollToPoint:contentBounds.origin];
}
@@ -272,7 +272,10 @@ import "CPScroller.j"
[_horizontalScroller setTarget:self];
[_horizontalScroller setAction:@selector(_horizontalScrollerDidScroll:)];
[self addSubview:_horizontalScroller];
[self reflectScrolledClipView:_contentView];
}
/*
@@ -288,14 +291,22 @@ import "CPScroller.j"
@param hasHorizontalScroller <code>YES</code> lets the scroll view
allocate a horizontal scroller if necessary.
*/
- (void)setHasHorizontalScroller:(BOOL)hasHorizontalScroller
- (void)setHasHorizontalScroller:(BOOL)shouldHaveHorizontalScroller
{
_hasHorizontalScroller = hasHorizontalScroller;
if (_hasHorizontalScroller == shouldHaveHorizontalScroller)
return;
_hasHorizontalScroller = shouldHaveHorizontalScroller;
if (_hasHorizontalScroller && !_horizontalScroller)
[self setHorizontalScroller:[[CPScroller alloc] initWithFrame:CPRectMake(0.0, 0.0, CPRectGetWidth([self bounds]), [CPScroller scrollerWidth])]];
else if (!hasHorizontalScroller && _horizontalScroller)
else if (!_hasHorizontalScroller && _horizontalScroller)
{
[_horizontalScroller setHidden:YES];
[self reflectScrolledClipView:_contentView];
}
}
/*
@@ -324,7 +335,10 @@ import "CPScroller.j"
[_verticalScroller setTarget:self];
[_verticalScroller setAction:@selector(_verticalScrollerDidScroll:)];
[self addSubview:_verticalScroller];
[self reflectScrolledClipView:_contentView];
}
/*
@@ -341,14 +355,22 @@ import "CPScroller.j"
@param hasVerticalScroller <code>YES</code> allows
the scroll view to display a vertical scroller
*/
- (void)setHasVerticalScroller:(BOOL)hasVerticalScroller
- (void)setHasVerticalScroller:(BOOL)shouldHaveVerticalScroller
{
_hasVerticalScroller = hasVerticalScroller;
if (_hasVerticalScroller == shouldHaveVerticalScroller)
return;
_hasVerticalScroller = shouldHaveVerticalScroller;
if (_hasVerticalScroller && !_verticalScroller)
[self setVerticalScroller:[[CPScroller alloc] initWithFrame:CPRectMake(0.0, 0.0, [CPScroller scrollerWidth], CPRectGetHeight([self bounds]))]];
else if (!hasVerticalScroller && _verticalScroller)
else if (!_hasVerticalScroller && _verticalScroller)
{
[_verticalScroller setHidden:YES];
[self reflectScrolledClipView:_contentView];
}
}
/*