2010-05-25 20 views

Odpowiedz

35

Niestety, biorąc pod uwagę fakt, że API ram jeszcze nie ustabilizowały się, że nie ma wiele tutoriali tam, a kilka z tych, które nie istnieją już nieaktualne. Przykładowe aplikacje są naprawdę najlepszymi źródłami, aby zobaczyć, jak pracować z ramą.

Na przykład w celu zapewnienia niestandardowych etykiet osi, spójrz na plik źródłowy CPTestApp-iPhone o numerze CPTestAppBarChartController.m. Wykres słupkowy w tym przykładzie ma zwyczaj X etykiety osi wyznaczonej przez następujący kod:

// Define some custom labels for the data elements 
x.labelRotation = M_PI/4; 
x.labelingPolicy = CPAxisLabelingPolicyNone; 
NSArray *customTickLocations = [NSArray arrayWithObjects:[NSDecimalNumber numberWithInt:1], [NSDecimalNumber numberWithInt:5], [NSDecimalNumber numberWithInt:10], [NSDecimalNumber numberWithInt:15], nil]; 
NSArray *xAxisLabels = [NSArray arrayWithObjects:@"Label A", @"Label B", @"Label C", @"Label D", @"Label E", nil]; 
NSUInteger labelLocation = 0; 
NSMutableArray *customLabels = [NSMutableArray arrayWithCapacity:[xAxisLabels count]]; 
for (NSNumber *tickLocation in customTickLocations) { 
    CPAxisLabel *newLabel = [[CPAxisLabel alloc] initWithText: [xAxisLabels objectAtIndex:labelLocation++] textStyle:x.labelTextStyle]; 
    newLabel.tickLocation = [tickLocation decimalValue]; 
    newLabel.offset = x.labelOffset + x.majorTickLength; 
    newLabel.rotation = M_PI/4; 
    [customLabels addObject:newLabel]; 
    [newLabel release]; 
} 

x.axisLabels = [NSSet setWithArray:customLabels]; 

Najpierw należy ustawić zasady etykietowania oś CPAxisLabelingPolicyNone pozwolić ramy zorientujesz będziesz dostarczanie niestandardowych etykiet, a następnie utworzyć tablicę etykiet z odpowiadającymi im lokalizacjami, a na końcu przypisujesz tę tablicę etykiet do właściwości axisLabels na osi X.

+0

Jak możemy dodać etykiety dla każdego plastra na wykresie kołowym? dziękuję – Pooja

+0

customTickLocations zawiera 5,10 ... związane z zakresem osi X? ponieważ mam oś x zawierającą wartości w sekundach, a następnie jakie wartości mogą być w customTickLocations w moim przypadku .. dzięki Tobie – Pooja

+1

@Pooja Niestandardowe etykiety mogą być dodawane do wykresów kołowych w dokładnie taki sam sposób jak w odpowiedzi ... jesteś Witamy. Możesz pracować nad niestandardowymi lokalizacjami zaznaczeń, jak wspomniano w [tej odpowiedzi SO] (http://stackoverflow.com/questions/3208025/core-plot-still-do-not-understand-how-to-have-custom-label- i tyknięcia) ... nie ma za co! – tipycalFlow

0

Aby zapewnić zwyczaj sformatowanych etykiet, można przypisać formatowania do nieruchomości labelFormatter z osi. Można też użyć NSNumberFormatter skonfigurowany do swoich preferencji, np .:

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
// ... configure formatter 

CPTXYAxis *y = axisSet.yAxis; 
y.labelFormatter = formatter; 

Lub, jeśli potrzebujesz bardziej szczegółowych formatowanie, można podklasy NSNumberFormatter i zastąpić metodę stringForObjectValue: zrobić dokładną formatowanie chcesz.

Powiązane problemy