Comments (7)
@stevewirig see the forks. I sow this feature in some one.
from mncalendarview.
This is what I added myself, where date is the beginning of the month that you want.
- (void)scrollToDate:(NSDate *)date {
[self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:[_monthDates indexOfObject:date]] atScrollPosition:UICollectionViewScrollPositionTop animated:NO];
}
from mncalendarview.
Hi there,
I have added the mentioned method but am getting below crash.
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'attempt to scroll to invalid index path: <NSIndexPath: 0xb736db0> {length = 2, path = 2147483647 - 0}'
from mncalendarview.
I am having trouble with this as well, any updates?
from mncalendarview.
Corrected Answer:
[calendarView.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:1] atScrollPosition:UICollectionViewScrollPositionTop animated:YES];
Pass the selected date index path.
from mncalendarview.
I know this is kind of old, but I found that this method works better. If you have any improvements let me know!
-(void) scrollToDate:(NSDate*) date withAnimation: (BOOL) animate{
NSDateComponents *dateComponents = [self.calendar components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:[NSDate date]];
dateComponents.day = 1;
NSDate *beginningOfMonth = [self.calendar dateFromComponents:dateComponents];
NSInteger month = [[self.calendar components:NSCalendarUnitMonth fromDate:beginningOfMonth toDate:date options: 0] month];
NSIndexPath* index = [NSIndexPath indexPathForItem:0 inSection:month];
UICollectionViewLayoutAttributes *attributes = [self.collectionView layoutAttributesForItemAtIndexPath:index];
CGRect rect = attributes.frame;
rect.origin.y += self.bounds.size.height - 30-44;
[self.collectionView scrollRectToVisible:rect animated:animate];
}
from mncalendarview.
Hello Dehli,
I happened upon your code and there is an issue when scrolling to a date that is before the visible date on screen. I have made some changes, now it will work regardless of scroll direction.
-(void) scrollToDate:(NSDate*)date animated:(BOOL)animated
{
NSDateComponents *dateComponents = [self.calendar components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:self.fromDate];
dateComponents.day = 1;
NSDate *beginningOfMonth = [self.calendar dateFromComponents:dateComponents];
NSInteger month = [[self.calendar components:NSCalendarUnitMonth fromDate:beginningOfMonth toDate:date options: 0] month];
NSIndexPath* index = [NSIndexPath indexPathForItem:0 inSection:month];
UICollectionViewLayoutAttributes *attributes = [self.collectionView layoutAttributesForItemAtIndexPath:index];
CGRect rect = attributes.frame;
int offset = 44;
if ([self.collectionView contentOffset].y > rect.origin.y)
offset -= 64;
rect.origin.y += self.bounds.size.height - offset - 568;
rect.size = CGSizeMake(320, 568);
[self.collectionView scrollRectToVisible:rect animated:animated];
}
from mncalendarview.
Related Issues (20)
- App crashes when calling NSDate Collection methods HOT 3
- Selecting frame returns wrong day.
- MNCalendarViewDayCell Enhancement
- Setting custom classes for cells has no effect HOT 1
- Week always starts on Sunday HOT 7
- iOS 6 Rotation issue
- Week Display
- Gregorian December 2013 Issue HOT 2
- two adjacent columns and months appear merged in many Islamic calendar months HOT 1
- Selected multiple date and specify month range? HOT 3
- Setting fromDate and toDate has no effect HOT 4
- Scrolling the Calendar.collectionView not working HOT 1
- Memory leaks HOT 1
- Does not allow to select a date prior to one month
- Should manual setting of the beginDate and endDate properties trigger a delegate callback?
- How to restrict previous dates to current date HOT 1
- On select date is shows previous date
- Multiple dates selection HOT 1
- April 2017
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mncalendarview.