iphone - UIPickerView Selected Row Label Color -
i've made custom uipickerview i'd uilabel change color when scrolled selected row this;

any ideas?
edit: i'd change color of uilabel whilst selection being made, i.e. whilst wheel turning, not afterwards.
here's i've got far, changes color of uilabel after have made selection:
- (uiview *)pickerview:(uipickerview *)pickerview viewforrow:(nsinteger)row forcomponent:(nsinteger)component reusingview:(uiview *)view { ailabel * pickerrow = view ? (ailabel *)view:[[[ailabel alloc] initwithframe:cgrectmake(0, 0, 140, 40)] autorelease]; pickerrow.backgroundcolor = [uicolor clearcolor]; pickerrow.font = [uifont boldsystemfontofsize:18.0f]; pickerrow.insets = uiedgeinsetsmake(0, 10, 0, 0); if(component == 0) { pickerrow.text = [self.numberarray objectatindex:row]; if ( row == number ) { pickerrow.alpha = 0.0f; [uiview animatewithduration: 0.33f delay: 0.0f options: uiviewanimationoptioncurveeaseout animations:^{ pickerrow.textcolor = [uicolor whitecolor]; pickerrow.shadowcolor = [uicolor blackcolor]; pickerrow.shadowoffset = cgsizemake(0.0f, 1.0f); pickerrow.alpha = 1.0f; } completion:^(bool finished){ }]; } else { pickerrow.textcolor = [uicolor blackcolor]; pickerrow.shadowcolor = [uicolor whitecolor]; pickerrow.shadowoffset = cgsizemake(0.0f, 1.0f); } } else { pickerrow.text = [self.durationarray objectatindex:row]; if ( row == duration ) { pickerrow.alpha = 0.0f; [uiview animatewithduration: 0.33f delay: 0.0f options: uiviewanimationoptioncurveeaseout animations:^{ pickerrow.textcolor = [uicolor whitecolor]; pickerrow.shadowcolor = [uicolor blackcolor]; pickerrow.shadowoffset = cgsizemake(0.0f, 1.0f); pickerrow.alpha = 1.0f; } completion:^(bool finished){ }]; } else { pickerrow.textcolor = [uicolor blackcolor]; pickerrow.shadowcolor = [uicolor whitecolor]; pickerrow.shadowoffset = cgsizemake(0.0f, 1.0f); } } return pickerrow; } the ailabel custom uilabel, nothing special it. 'number' variable current selected value in first component. 'duration' variable current selected value in second component.
hope clearer
cheers
- (uiview *)pickerview:(uipickerview *)pickerview viewforrow:(nsinteger)row forcomponent:(nsinteger)component reusingview:(uiview *)view { uilabel *label = (uilabel*) view; if (label == nil) { label = [[uilabel alloc] init]; } label.textcolor = [uicolor redcolor]; cgsize rowsize = [pickerview rowsizeforcomponent:component]; cgrect labelrect = cgrectmake (0, 0, rowsize.width, rowsize.height); [label setframe:labelrect]; return label; } - (void)pickerview:(uipickerview *)pickerview didselectrow:(nsinteger)row incomponent:(nsinteger)component { uilabel *selectedrow = (uilabel *)[pickerview viewforrow:row forcomponent:component]; selectedrow.textcolor = [uicolor bluecolor]; }
Comments
Post a Comment