Skip to content

Commit 5fbcd69

Browse files
Alfredo UribeAlfredo Uribe
authored andcommitted
finished animated fades at ends
new item dot is now working
1 parent 48c1f94 commit 5fbcd69

5 files changed

Lines changed: 57 additions & 39 deletions

File tree

EasyReader/Application/Api/CSFeedItemUpdater.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ - (void) start
3232
[myInvocation setTarget:self];
3333
[myInvocation setSelector:@selector(requestFiveMinutesOfFeedItems:)];
3434

35-
int interval = 30 * 1;
35+
int interval = 120 * 1;
3636
[NSTimer scheduledTimerWithTimeInterval:interval invocation:myInvocation repeats:YES];
3737
}
3838

EasyReader/Application/Controllers/Home/CSHomeViewController.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
#import <UIKit/UIKit.h>
1010
#import "CSBaseViewController.h"
1111
#import "CSCollectionPageControl.h"
12+
#import "CSFeedItemCollectionViewDataSource.h"
1213

1314
@class User;
1415

@@ -19,8 +20,12 @@
1920
@property (strong, nonatomic) IBOutlet CSCollectionPageControl *pageControl_itemIndicator;
2021
@property (nonatomic, strong) UIWebView *feedItemWebView;
2122
@property (nonatomic, strong) NSMutableSet *feedItems;
22-
@property User* currentUser;
2323

24+
@property User* currentUser;
25+
@property CSFeedItemCollectionViewDataSource *feedCollectionViewDataSource;
26+
@property FeedItem *currentFeedItem;
2427
@property int collectionCellGoingTo;
2528

29+
- (void)scrollToCurrentFeedItem;
30+
2631
@end

EasyReader/Application/Controllers/Home/CSHomeViewController.m

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
#import "User.h"
1818

1919
@interface CSHomeViewController (){
20-
CSFeedItemCollectionViewDataSource *feedCollectionViewDataSource;
21-
FeedItem *currentFeedItem;
2220
NSString *currentURL;
2321
}
2422

@@ -35,6 +33,7 @@ - (void)viewDidLoad
3533
[super viewDidLoad];
3634
_feedItems = [[NSMutableSet alloc] init];
3735
[_pageControl_itemIndicator setUpFadesOnView:[_pageControl_itemIndicator superview]];
36+
_pageControl_itemIndicator.controller_owner = self;
3837
[self setUpCollectionView];
3938
[self setUpWebView];
4039
[self setupFeedItemObserver];
@@ -89,14 +88,16 @@ - (void) setupFeedItemObserver
8988
}
9089

9190
//redraw the collection with the changes to the feed items
92-
[feedCollectionViewDataSource sortFeedItems];
91+
[_feedCollectionViewDataSource sortFeedItems];
9392
[_collectionView_feedItems reloadData];
9493
_pageControl_itemIndicator.numberOfPages = [_feedItems count] < 6 ? [_feedItems count] : 5;
9594

96-
if(currentFeedItem){
95+
if(_currentFeedItem){
9796
[self scrollToCurrentFeedItem];
98-
[_pageControl_itemIndicator setPageControllerPageAtIndex:[feedCollectionViewDataSource.sortedFeedItems indexOfObject:currentFeedItem]
97+
[_pageControl_itemIndicator setPageControllerPageAtIndex:[_feedCollectionViewDataSource.sortedFeedItems indexOfObject:_currentFeedItem]
9998
forCollection:_feedItems];
99+
} else {
100+
[_pageControl_itemIndicator setPageControllerPageAtIndex:0 forCollection:_feedItems];
100101
}
101102
}
102103
insertionBlock:nil
@@ -117,26 +118,17 @@ - (void)setUpCollectionView
117118
User *current = [User current];
118119
NSSet *feedItems = current.feedItems;
119120

120-
feedCollectionViewDataSource =
121+
_feedCollectionViewDataSource =
121122
[[CSFeedItemCollectionViewDataSource alloc] initWithFeedItems:feedItems
122123
reusableCellIdentifier:@"feedItemCell"
123124
configureBlock:[self configureFeedItem]];
124125

125-
self.collectionView_feedItems.dataSource = feedCollectionViewDataSource;
126+
self.collectionView_feedItems.dataSource = _feedCollectionViewDataSource;
126127
self.collectionView_feedItems.delegate = self;
127128

128129

129130
}
130131

131-
-(void)newItemButton:(id)sender
132-
{
133-
currentFeedItem = [feedCollectionViewDataSource.sortedFeedItems firstObject];
134-
[self scrollToCurrentFeedItem];
135-
self.collectionCellGoingTo = 0;
136-
[_pageControl_itemIndicator setPageControllerPageAtIndex:[feedCollectionViewDataSource.sortedFeedItems indexOfObject:currentFeedItem]
137-
forCollection:_feedItems];
138-
}
139-
140132
#pragma mark - IBActions
141133

142134
// Receives left menu link click
@@ -188,8 +180,8 @@ - (void)scrollViewDidEndDecelerating:(UIScrollView *)sender {
188180
// If we are scrolling in the collectionView only
189181
if([sender isMemberOfClass:[CSFeedItemCollectionView class]]) {
190182
// unload the webView if we have moved to a new feedItem
191-
if(currentFeedItem != self.collectionView_feedItems.currentFeedItem){
192-
currentFeedItem = self.collectionView_feedItems.currentFeedItem;
183+
if(_currentFeedItem != self.collectionView_feedItems.currentFeedItem){
184+
_currentFeedItem = self.collectionView_feedItems.currentFeedItem;
193185
[self.feedItemWebView loadHTMLString:@"<html><head></head><body></body></html>" baseURL:nil];
194186
}
195187
}
@@ -198,7 +190,7 @@ - (void)scrollViewDidEndDecelerating:(UIScrollView *)sender {
198190
// Scroll to the currentFeedItem when the feedItems update
199191
- (void)scrollToCurrentFeedItem
200192
{
201-
NSUInteger index = [feedCollectionViewDataSource.sortedFeedItems indexOfObject:currentFeedItem];
193+
NSUInteger index = [_feedCollectionViewDataSource.sortedFeedItems indexOfObject:_currentFeedItem];
202194
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:index inSection:0];
203195
[_collectionView_feedItems scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:NO];
204196
}

EasyReader/Application/Controls/CSCollectionPageControl.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,17 @@
77
//
88

99
#import <UIKit/UIKit.h>
10+
@class CSHomeViewController;
1011

1112
@interface CSCollectionPageControl : UIPageControl
1213

14+
@property CSHomeViewController *controller_owner;
1315
@property UIButton *button_newItem;
1416
@property UIView *view_maskLayer;
1517
@property UIView *view_leftFade;
1618
@property UIView *view_rightFade;
1719

1820
- (void)setPageControllerPageAtIndex:(int)index forCollection:(NSSet*)collection;
19-
-(void)setUpFadesOnView:(UIView*)mask;
21+
- (void)setUpFadesOnView:(UIView*)mask;
2022

2123
@end

EasyReader/Application/Controls/CSCollectionPageControl.m

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,16 @@
77
//
88

99
#import "CSCollectionPageControl.h"
10+
#import "CSFeedItemCollectionViewDataSource.h"
11+
#import "CSHomeViewController.h"
1012

1113
@implementation CSCollectionPageControl
14+
{
15+
float leftFadeOrigin;
16+
float rightFadeOrigin;
17+
float gradientWidth;
18+
float fadeMovement;
19+
}
1220

1321
- (id)initWithCoder:(NSCoder *)aDecoder
1422
{
@@ -25,11 +33,25 @@ - (id)initWithCoder:(NSCoder *)aDecoder
2533
return self;
2634
}
2735

36+
-(void)newItemButton:(id)sender
37+
{
38+
CSFeedItemCollectionViewDataSource *dataSource = [_controller_owner feedCollectionViewDataSource];
39+
[_controller_owner setCurrentFeedItem:[[dataSource sortedFeedItems] firstObject]];
40+
[_controller_owner scrollToCurrentFeedItem];
41+
_controller_owner.collectionCellGoingTo = 0;
42+
[self setPageControllerPageAtIndex:[[dataSource sortedFeedItems]indexOfObject:_controller_owner.currentFeedItem]
43+
forCollection:_controller_owner.feedItems];
44+
}
45+
2846
-(void)setUpFadesOnView:(UIView*)mask
2947
{
3048
_view_maskLayer = [[UIView alloc] init];
49+
gradientWidth = 40;
50+
fadeMovement = 10;
51+
3152
_view_leftFade = [[UIView alloc] init];
32-
_view_leftFade.frame = CGRectMake(110, 10, 30, 20);
53+
_view_leftFade.frame = CGRectMake(110, 10, gradientWidth, 20);
54+
leftFadeOrigin = 110;
3355
_view_leftFade.backgroundColor = [UIColor blackColor];
3456

3557
CAGradientLayer *leftLayer = [CAGradientLayer layer];
@@ -40,7 +62,8 @@ -(void)setUpFadesOnView:(UIView*)mask
4062
_view_leftFade.layer.mask = leftLayer;
4163

4264
_view_rightFade = [[UIView alloc] init];
43-
_view_rightFade.frame = CGRectMake(160, 10, 50, 20);
65+
_view_rightFade.frame = CGRectMake(170, 10, gradientWidth, 20);
66+
rightFadeOrigin = 170;
4467
_view_rightFade.backgroundColor = [UIColor blackColor];
4568

4669
CAGradientLayer *rightLayer = [CAGradientLayer layer];
@@ -53,35 +76,31 @@ -(void)setUpFadesOnView:(UIView*)mask
5376
[_view_maskLayer addSubview:_view_leftFade];
5477
[_view_maskLayer addSubview:_view_rightFade];
5578
[mask addSubview:_view_maskLayer];
56-
NSLog(@"added?");
5779
}
5880

5981
- (void)setPageControllerPageAtIndex:(int)index forCollection:(NSSet*)collection
6082
{
6183
if ([collection count] < 6){
6284
self.currentPage = index;
6385
} else {
64-
if( index <= 2 ){
86+
if( index < 2 ){
6587
self.currentPage = index;
66-
[_view_leftFade setHidden:YES];
88+
[UIView animateWithDuration:.75 animations:^{
89+
_view_leftFade.frame = CGRectMake(leftFadeOrigin-(fadeMovement*(2-index)), 10, gradientWidth, 20);
90+
}];
6791
} else if(index > ([collection count]-3) ){
6892
self.currentPage = 5-([collection count]-index);
69-
[_view_rightFade setHidden:YES];
93+
[UIView animateWithDuration:.75 animations:^{
94+
_view_rightFade.frame = CGRectMake(rightFadeOrigin+(fadeMovement*(3-([collection count]-index))), 10, gradientWidth, 20);
95+
}];
7096
} else {
7197
self.currentPage = 2;
72-
[_view_leftFade setHidden:NO];
73-
[_view_rightFade setHidden:NO];
98+
[UIView animateWithDuration:.75 animations:^{
99+
_view_leftFade.frame = CGRectMake(leftFadeOrigin, 10, gradientWidth, 20);
100+
_view_rightFade.frame = CGRectMake(rightFadeOrigin, 10, gradientWidth, 20);
101+
}];
74102
}
75103
}
76104
}
77105

78-
/*
79-
// Only override drawRect: if you perform custom drawing.
80-
// An empty implementation adversely affects performance during animation.
81-
- (void)drawRect:(CGRect)rect
82-
{
83-
// Drawing code
84-
}
85-
*/
86-
87106
@end

0 commit comments

Comments
 (0)