2016-03-28 15 views
1

Ich möchte die TextColor der Picker-Ansicht ändern. Ich bin in der Lage, textColor nach didSelectRow Methode aufgerufen zu ändern.Ändern Sie TextColor beim Blättern in PickerView

Aber ich möchte TextColor auch ändern, wenn der Text im selectedRow-Bereich wie die Uhr App im iPhone kommt.

MyCode:

-(NSAttributedString*)pickerView:(UIPickerView *)pickerView attributedTitleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
    NSAttributedString *str= [[NSAttributedString alloc]initWithString:[NSString stringWithFormat:@"%02ld",row] attributes:@{ 
                                  NSForegroundColorAttributeName:[UIColor redColor] 
                                  }]; 
    if([pic selectedRowInComponent:component]==row) 
    str= [[NSAttributedString alloc]initWithString:[NSString stringWithFormat:@"%02ld",row] attributes:@{ 
                                  NSForegroundColorAttributeName:[UIColor greenColor] 
                                  }]; 
    return str; 
} 


- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 

    [pic reloadComponent:component]; 
} 

Wie kann ich das erreichen?

enter image description here

Antwort

0

Sie können den gewünschten Effekt in Ihrem Beispiel mit mehreren PickerViews das heißt der Hauptpicker in der Mitte mit der großen Art und differenzierende Farbe erzielen. Platzieren Sie dann zwei kleinere Picker-Ansichten über und unter, stellen Sie sicher, dass alle Größen so beschränkt sind, dass nur eine Zeilenhöhe sichtbar ist. Stellen Sie sicher, dass Sie nur den Delegaten für das Hauptobjekt festlegen und ihn in der Ansichtshierarchie nach vorne bringen, wenn dieser manuell gescrollt wird, versetzen Sie den Inhalt der anderen Auswahlelemente.

+0

Danke für Ihre Antwort. Aber ich verwechsle mit ** "Stellen Sie sicher, dass Sie nur den Delegaten für das Hauptobjekt festlegen und ihn in der Ansichtshierarchie nach vorne bringen, wenn der Inhalt manuell gescrollt wird." ** Ich bin es nicht das bekommen, tut mir leid – user2526811

Verwandte Themen