123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- //
- // SlackTextViewController
- // https://github.com/slackhq/SlackTextViewController
- //
- // Copyright 2014-2016 Slack Technologies, Inc.
- // Licence: MIT-Licence
- //
- #import "UIScrollView+SLKAdditions.h"
- @implementation UIScrollView (SLKAdditions)
- - (void)slk_scrollToTopAnimated:(BOOL)animated
- {
- if ([self slk_canScroll]) {
- [self setContentOffset:CGPointZero animated:animated];
- }
- }
- - (void)slk_scrollToBottomAnimated:(BOOL)animated
- {
- if ([self slk_canScroll]) {
- [self setContentOffset:[self slk_bottomRect].origin animated:animated];
- }
- }
- - (BOOL)slk_canScroll
- {
- if (self.contentSize.height > CGRectGetHeight(self.frame)) {
- return YES;
- }
- return NO;
- }
- - (BOOL)slk_isAtTop
- {
- return CGRectGetMinY([self slk_visibleRect]) <= CGRectGetMinY(self.bounds);
- }
- - (BOOL)slk_isAtBottom
- {
- return CGRectGetMaxY([self slk_visibleRect]) >= CGRectGetMaxY([self slk_bottomRect]);
- }
- - (CGRect)slk_visibleRect
- {
- CGRect visibleRect;
- visibleRect.origin = self.contentOffset;
- visibleRect.size = self.frame.size;
- return visibleRect;
- }
- - (CGRect)slk_bottomRect
- {
- return CGRectMake(0.0, self.contentSize.height - CGRectGetHeight(self.bounds), CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds));
- }
- - (void)slk_stopScrolling
- {
- if (!self.isDragging) {
- return;
- }
-
- CGPoint offset = self.contentOffset;
- offset.y -= 1.0;
- [self setContentOffset:offset];
-
- offset.y += 1.0;
- [self setContentOffset:offset];
- }
- @end
|