2011-10-03 3 views
0

저는 Objective-C를 처음 접했고 귀하의 도움이 필요합니다! 아래에서 볼 수있는 코드에서 내 레이블은 선택기보기에서 데이터를 선택합니다. 사용자가 픽커보기에서 값을 변경하자마자 실시간으로 "chargeLabel.text"를 업데이트하기 위해 "calculate"IBAction을 사용하는 대신에 싶습니다.Objective-C : 자동 업데이트 레이블 텍스트

-(IBAction)calculate:(id)sender { 
float floatTime; 
if ([typeLabel.text isEqualToString:@"NiMH"]) 
{ 
    floatTime=([mAhLabel.text floatValue]/chargerSlider.value)*1.5; 
} else { 
    floatTime=([mAhLabel.text floatValue]/chargerSlider.value)*1.4; 
} 
int intHourhs=(floatTime); 
float floatHours=(intHourhs); 
float floatMinutes=(floatTime-floatHours)*60; 
NSString *stringTotal = [NSString stringWithFormat: @"Hours: %.0i Minutes: %.0f", intHourhs, floatMinutes]; 
chargeLabel.text=stringTotal; 

}

답변

2

당신은 UIPickerViewDelegate 의정서를 이행해야한다. 다음, didSelectRow 방법으로 당신이 원하는대로 수행

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component 
{ 
    ... 
    //here your code 

} 

확인 UIPickerViewDelegate Protocol Reference 편집

: 난 그냥이 UISlider 당신은 어떤을 구현하는 데 필요하지 않은 경우 당신이 chargerSlidervalue 속성에 액세스 실현 위임자, IB의 IBAction을 IB의 슬라이더 선택자 Value Changed에 지정하면됩니다.

1

UIPickerView의 대리인으로 자신을 설정하고이 메소드를 구현 :이 방법은 전화를받을 때 pickerView:didSelectRow:inComponent 는 단순히 전화 [self calculate:nil];