Compare commits

...

8 Commits

Author SHA1 Message Date
Terry Worona 92e56d78c5 updates specs and read me 2014-08-14 18:01:04 -07:00
Terry Worona 36ec328346 Fixed issue #89 2014-08-14 17:57:39 -07:00
Terry Worona b763ae540c updated version 2014-08-07 13:33:46 -07:00
Terry Worona 7ffdf6d9da Fixed issue #83 2014-08-07 13:30:48 -07:00
Terry Worona 6531c68574 version update 2014-08-04 13:37:33 -07:00
Terry Worona ebae36bd2f Pushed base datasource and delegate protocols up to JBChartView (for extensibility) 2014-08-04 13:17:04 -07:00
Terry Worona 8cdff2891c Updated version 2014-08-04 10:15:05 -07:00
Terry Worona 333200d041 Fixed issue #77 2014-08-04 10:13:05 -07:00
9 changed files with 92 additions and 58 deletions
+16
View File
@@ -1,5 +1,21 @@
# Changelog
## <a href="https://github.com/Jawbone/JBChartView/tree/v2.7.4">2.7.4</a>
#### 08/14/14
- Fixes issue <a href="https://github.com/Jawbone/JBChartView/pull/89">#89</a>.
## <a href="https://github.com/Jawbone/JBChartView/tree/v2.7.3">2.7.3</a>
#### 08/07/14
- Fixes issue <a href="https://github.com/Jawbone/JBChartView/pull/83">#83</a>.
## <a href="https://github.com/Jawbone/JBChartView/tree/v2.7.2">2.7.2</a>
#### 08/04/14
- Fixes issue <a href="https://github.com/Jawbone/JBChartView/pull/78">#78</a>.
## <a href="https://github.com/Jawbone/JBChartView/tree/v2.7.1">2.7.1</a>
#### 08/04/14
- Fixes issue <a href="https://github.com/Jawbone/JBChartView/pull/77">#77</a>.
## <a href="https://github.com/Jawbone/JBChartView/tree/v2.7.0">2.7.0</a>
#### 08/02/14
- Fixes issue <a href="https://github.com/Jawbone/JBChartView/pull/76">#76</a>.
+19 -20
View File
@@ -9,24 +9,9 @@
// Views
#import "JBChartView.h"
@protocol JBBarChartViewDataSource;
@protocol JBBarChartViewDelegate;
@class JBBarChartView;
@interface JBBarChartView : JBChartView
@property (nonatomic, weak) id<JBBarChartViewDataSource> dataSource;
@property (nonatomic, weak) id<JBBarChartViewDelegate> delegate;
/**
* Vertical highlight overlayed on bar during touch events.
*
* Default: YES.
*/
@property (nonatomic, assign) BOOL showsVerticalSelection;
@end
@protocol JBBarChartViewDataSource <NSObject>
@protocol JBBarChartViewDataSource <JBChartViewDataSource>
@required
@@ -55,12 +40,12 @@
@end
@protocol JBBarChartViewDelegate <NSObject>
@protocol JBBarChartViewDelegate <JBChartViewDelegate>
@required
/**
* Height for a bar at a given index (left to right). There is no ceiling on the the height;
* Height for a bar at a given index (left to right). There is no ceiling on the the height;
* the chart will automatically normalize all values between the overal min and max heights.
*
* @param barChartView The bar chart object requesting this information.
@@ -68,7 +53,7 @@
*
* @return The y-axis height of the supplied bar index (x-axis)
*/
- (CGFloat)barChartView:(JBBarChartView *)barChartView heightForBarViewAtAtIndex:(NSUInteger)index;
- (CGFloat)barChartView:(JBBarChartView *)barChartView heightForBarViewAtIndex:(NSUInteger)index;
@optional
@@ -129,3 +114,17 @@
- (NSUInteger)barPaddingForBarChartView:(JBBarChartView *)barChartView;
@end
@interface JBBarChartView : JBChartView
@property (nonatomic, weak) id<JBBarChartViewDataSource> dataSource;
@property (nonatomic, weak) id<JBBarChartViewDelegate> delegate;
/**
* Vertical highlight overlayed on bar during touch events.
*
* Default: YES.
*/
@property (nonatomic, assign) BOOL showsVerticalSelection;
@end
+3 -3
View File
@@ -130,12 +130,12 @@ static UIColor *kJBBarChartViewDefaultBarColor = nil;
NSUInteger dataCount = [self.dataSource numberOfBarsInBarChartView:self];
// Build up the data collection
NSAssert([self.delegate respondsToSelector:@selector(barChartView:heightForBarViewAtAtIndex:)], @"JBBarChartView // delegate must implement - (CGFloat)barChartView:(JBBarChartView *)barChartView heightForBarViewAtAtIndex:(NSUInteger)index");
NSAssert([self.delegate respondsToSelector:@selector(barChartView:heightForBarViewAtIndex:)], @"JBBarChartView // delegate must implement - (CGFloat)barChartView:(JBBarChartView *)barChartView heightForBarViewAtIndex:(NSUInteger)index");
NSMutableDictionary *dataDictionary = [NSMutableDictionary dictionary];
for (NSUInteger index=0; index<dataCount; index++)
{
CGFloat height = [self.delegate barChartView:self heightForBarViewAtAtIndex:index];
NSAssert(height >= 0, @"JBBarChartView // datasource function - (CGFloat)barChartView:(JBBarChartView *)barChartView heightForBarViewAtAtIndex:(NSUInteger)index must return a CGFloat >= 0");
CGFloat height = [self.delegate barChartView:self heightForBarViewAtIndex:index];
NSAssert(height >= 0, @"JBBarChartView // datasource function - (CGFloat)barChartView:(JBBarChartView *)barChartView heightForBarViewAtIndex:(NSUInteger)index must return a CGFloat >= 0");
[dataDictionary setObject:[NSNumber numberWithFloat:height] forKey:[NSNumber numberWithInt:(int)index]];
}
self.chartDataDictionary = [NSDictionary dictionaryWithDictionary:dataDictionary];
+18
View File
@@ -24,8 +24,26 @@ typedef NS_ENUM(NSInteger, JBChartViewState){
JBChartViewStateCollapsed
};
@protocol JBChartViewDataSource <NSObject>
// Extend (via subclass) to add custom functionality
@end
@protocol JBChartViewDelegate <NSObject>
// Extend (via subclass) to add custom functionality
@end
@interface JBChartView : UIView
/*
* Base dataSource and delegate protocols.
*/
@property (nonatomic, weak) id<JBChartViewDataSource> dataSource;
@property (nonatomic, weak) id<JBChartViewDelegate> delegate;
/**
* Header and footer views are shown above and below the chart respectively.
* Each view will be stretched horizontally to fill width of chart.
+27 -28
View File
@@ -8,6 +8,8 @@
#import "JBChartView.h"
@class JBLineChartView;
/**
* Current support for two line styles: solid (default) and dashed.
*/
@@ -22,33 +24,7 @@ typedef NS_ENUM(NSInteger, JBLineChartViewLineStyle){
JBLineChartViewLineStyleDashed
};
@protocol JBLineChartViewDataSource;
@protocol JBLineChartViewDelegate;
@interface JBLineChartView : JBChartView
@property (nonatomic, weak) id<JBLineChartViewDataSource> dataSource;
@property (nonatomic, weak) id<JBLineChartViewDelegate> delegate;
/**
* Vertical highlight overlayed on a line graph during touch events.
*
* Default: YES.
*/
@property (nonatomic, assign) BOOL showsVerticalSelection;
/**
* A highlight shown on a line within the graph during touch events. The highlighted line
* is the closest line to the touch point and corresponds to the lineIndex delegatd back via
* didSelectChartAtHorizontalIndex:atLineIndex: and didUnSlectChartAtHorizontalIndex:atLineIndex:
*
* Default: YES.
*/
@property (nonatomic, assign) BOOL showsLineSelection;
@end
@protocol JBLineChartViewDataSource <NSObject>
@protocol JBLineChartViewDataSource <JBChartViewDataSource>
@required
@@ -101,7 +77,7 @@ typedef NS_ENUM(NSInteger, JBLineChartViewLineStyle){
@end
@protocol JBLineChartViewDelegate <NSObject>
@protocol JBLineChartViewDelegate <JBChartViewDelegate>
@required
@@ -286,3 +262,26 @@ typedef NS_ENUM(NSInteger, JBLineChartViewLineStyle){
- (JBLineChartViewLineStyle)lineChartView:(JBLineChartView *)lineChartView lineStyleForLineAtLineIndex:(NSUInteger)lineIndex;
@end
@interface JBLineChartView : JBChartView
@property (nonatomic, weak) id<JBLineChartViewDataSource> dataSource;
@property (nonatomic, weak) id<JBLineChartViewDelegate> delegate;
/**
* Vertical highlight overlayed on a line graph during touch events.
*
* Default: YES.
*/
@property (nonatomic, assign) BOOL showsVerticalSelection;
/**
* A highlight shown on a line within the graph during touch events. The highlighted line
* is the closest line to the touch point and corresponds to the lineIndex delegatd back via
* didSelectChartAtHorizontalIndex:atLineIndex: and didUnSlectChartAtHorizontalIndex:atLineIndex:
*
* Default: YES.
*/
@property (nonatomic, assign) BOOL showsLineSelection;
@end
+5 -3
View File
@@ -437,13 +437,17 @@ static UIColor *kJBLineChartViewDefaultDotSelectionColor = nil;
lineWidth = [self.delegate lineChartView:self widthForLineAtLineIndex:lineIndex];
}
CGFloat dotRadius = lineWidth * kJBLineChartDotsViewDefaultRadiusFactor; // default
CGFloat dotRadius = 0;
if (showsDots)
{
if ([self.delegate respondsToSelector:@selector(lineChartView:dotRadiusForLineAtLineIndex:)])
{
dotRadius = [self.delegate lineChartView:self dotRadiusForLineAtLineIndex:lineIndex];
}
else
{
dotRadius = lineWidth * kJBLineChartDotsViewDefaultRadiusFactor; // default
}
}
CGFloat currentMaxLineWidth = MAX(dotRadius, lineWidth);
@@ -892,8 +896,6 @@ static UIColor *kJBLineChartViewDefaultDotSelectionColor = nil;
{
_verticalSelectionViewVisible = verticalSelectionViewVisible;
[self bringSubviewToFront:self.verticalSelectionView];
if (animated)
{
[UIView animateWithDuration:kJBChartViewDefaultAnimationDuration delay:0.0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
+2 -2
View File
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "JBChartView"
s.version = "2.7.0"
s.version = "2.7.4"
s.summary = "Jawbone's iOS-based charting library for both line and bar graphs."
s.homepage = "https://github.com/Jawbone/JBChartView"
@@ -10,7 +10,7 @@ Pod::Spec.new do |s|
s.author = { "Terry Worona" => "tworona@jawbone.com" }
s.source = {
:git => "https://github.com/Jawbone/JBChartView.git",
:tag => "v2.7.0"
:tag => "v2.7.4"
}
s.platform = :ios, '6.0'
@@ -162,7 +162,7 @@ NSString * const kJBBarChartViewControllerNavButtonViewKey = @"view";
#pragma mark - JBBarChartViewDelegate
- (CGFloat)barChartView:(JBBarChartView *)barChartView heightForBarViewAtAtIndex:(NSUInteger)index
- (CGFloat)barChartView:(JBBarChartView *)barChartView heightForBarViewAtIndex:(NSUInteger)index
{
return [[self.chartData objectAtIndex:index] floatValue];
}
+1 -1
View File
@@ -43,7 +43,7 @@ Simply add the following line to your <code>Podfile</code>:
Your Podfile should look something like:
platform :ios, '6.0'
pod 'JBChartView', '~> 2.7.0'
pod 'JBChartView', '~> 2.7.4'
### The Old School Way