2015-06-04 28 views
5

Utworzono wykres liniowy za pomocą BEMSimpleLineGraph Pod, ale na całe życie nie mogę zrozumieć, dlaczego etykiety X-Axis nie są wyświetlane na dowolnym urządzeniu nowszym niż iPhone 5.Etykiety X-Axis BEMSimpleLineGraph nie są wyświetlane dla telefonów nowszych niż iPhone 5

EDYCJA: Powinienem domyślnie wspomnieć enableXAxisLabel = YES.

Oto kod rozplanować wykresu:

#import "WeightChartCell.h" 

@implementation WeightChartCell 

@synthesize viewCell, arrayPlots, myGraph, labelWeightHistory; 

- (void)awakeFromNib { 
} 

- (void)layoutSubviews { 
    [super layoutSubviews]; 

    float width = viewCell.bounds.size.width; 

    self.myGraph = [[BEMSimpleLineGraphView alloc] initWithFrame:CGRectMake(-20, 40, width+20, 150.0)]; 
    self.myGraph.dataSource = self; 
    self.myGraph.delegate = self; 
    self.myGraph.colorTop = [UIColor whiteColor]; 
    self.myGraph.colorBottom = [UIColor colorWithRed:190/255.0 green:218/255.0 blue:246/255.0 alpha:1]; 
    self.myGraph.colorLine = [UIColor colorWithRed:124/255.0 green:181/255.0 blue:236/255.0 alpha:1]; 
    self.myGraph.colorPoint = [UIColor colorWithRed:124/255.0 green:181/255.0 blue:236/255.0 alpha:1]; 
    self.myGraph.widthLine = 3; 
    self.myGraph.sizePoint = 10; 
    self.myGraph.alwaysDisplayDots = YES; 
    self.myGraph.colorXaxisLabel = [UIColor lightGrayColor]; 
    self.myGraph.colorBackgroundXaxis = [UIColor clearColor]; 
    self.myGraph.enableYAxisLabel = YES; 
    self.myGraph.colorYaxisLabel = [UIColor clearColor]; 
    self.myGraph.colorBackgroundYaxis = [UIColor clearColor]; 
    self.myGraph.enableReferenceYAxisLines = YES; 
    self.myGraph.colorReferenceLines = [UIColor lightGrayColor]; 
    self.myGraph.enableLeftReferenceAxisFrameLine = NO; 
    self.myGraph.enablePopUpReport = YES; 
    self.myGraph.enableReferenceAxisFrame = YES; 

    [viewCell addSubview:self.myGraph]; 

    labelWeightHistory.text = NSLocalizedString(@"Progress", nil); 
    [self sendSubviewToBack:self.myGraph]; 

} 

- (NSInteger)numberOfPointsInLineGraph:(BEMSimpleLineGraphView *)graph { 
    return [arrayPlots count]; 
} 

- (NSInteger)numberOfGapsBetweenLabelsOnLineGraph:(BEMSimpleLineGraphView *)graph { 
    return 1; 
} 

- (NSString *)lineGraph:(BEMSimpleLineGraphView *)graph labelOnXAxisForIndex:(NSInteger)index { 
    NSString *dateStr = [[arrayPlots objectAtIndex:index] valueForKey:@"created_at"]; 
    // Convert string to date object 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"yyyy-MM-dd"]; 
    NSDate *date = [dateFormat dateFromString:dateStr]; 

    // Convert date object to desired output format 
    [dateFormat setDateFormat:@"d.MMM"]; 
    dateStr = [dateFormat stringFromDate:date]; 
    return dateStr; 
} 

- (CGFloat)lineGraph:(BEMSimpleLineGraphView *)graph valueForPointAtIndex:(NSInteger)index { 
    NSInteger yPoint = [[[arrayPlots objectAtIndex:index] valueForKey:@"weight"] floatValue]; 
    return yPoint; 
} 

@end 

to wychodzi jak oczekiwano na urządzeniu iPhone 5 i iPhone 5 symulatora: oni nie pokazują się iPhone 5

Ale w ogóle na nowszym niż iPhone 5. Jest to dla iPhone'a 5s: iPhone 5s

+1

Mam ten sam problem. Wygląda na to, że działa dobrze na iPhone'ie 5, a nawet na iPhone'ie 6 i 6+, ale nie na iPhone'ie 5S – mikemike396

Odpowiedz

5

Patrz: this issue on github. Zawiera tymczasową poprawkę podczas pracy nad oficjalną poprawką.

Dzięki!

+0

Awesome. Dzięki za poprawki tymczasowe! – Chris